Mock Version: 6.0
Mock Version: 6.0
Mock Version: 6.0
Mock Version: 6.0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos9-caracal-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 0x7fac5f453d00>timeout=0uid=1022gid=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-24.1.4-0.20250328101425.1e9877f.el9.src.rpm
Child return code was: 0
Mock Version: 6.0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos9-caracal-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 0x7f052fa4c430>timeout=0uid=1022gid=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-24.1.4-0.20250328101425.1e9877f.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-caracal-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 0x7f052fa4c430>timeout=0uid=1022gid=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.GTgn5D
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf ironic-24.1.4.dev12
+ /usr/bin/tar -xof -
+ /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-24.1.4.dev12-0.20250328101425.1e9877f.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd ironic-24.1.4.dev12
+ /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-24.1.4 base'
+ sed -i /tempest/d setup.cfg
+ rm -rf ironic_tempest_plugin
+ 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
+ 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.S0GFaj
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(packaging)'
+ echo 'python3dist(pip) >= 19'
+ '[' -f pyproject.toml ']'
+ '[' -f setup.py ']'
+ echo 'python3dist(setuptools) >= 40.8'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/ironic-24.1.4.dev12/.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-24.1.4.dev12/.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-24.1.4.dev12/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires -t -e py39
Handling setuptools >= 40.8 from default build backend
Requirement satisfied: setuptools >= 40.8
   (installed: setuptools 65.5.1)
Handling wheel from get_requires_for_build_wheel
Requirement not satisfied: wheel
Handling pbr>=2.0.0 from get_requires_for_build_wheel
Requirement satisfied: pbr>=2.0.0
   (installed: pbr 6.0.0)
Exiting dependency generation pass: get_requires_for_build_wheel
+ cat /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires
+ rm -rfv '*.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-caracal-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 0x7f052fa4c430>timeout=0uid=1022gid=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.L00kgo
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(packaging)'
+ echo 'python3dist(pip) >= 19'
+ '[' -f pyproject.toml ']'
+ '[' -f setup.py ']'
+ echo 'python3dist(setuptools) >= 40.8'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/ironic-24.1.4.dev12/.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-24.1.4.dev12/.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-24.1.4.dev12/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires -t -e py39
Handling setuptools >= 40.8 from default build backend
Requirement satisfied: setuptools >= 40.8
   (installed: setuptools 65.5.1)
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.36.2)
Handling pbr>=2.0.0 from get_requires_for_build_wheel
Requirement satisfied: pbr>=2.0.0
   (installed: pbr 6.0.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement not satisfied: tox-current-env >= 0.0.6
Exiting dependency generation pass: tox itself
+ cat /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires
+ rm -rfv '*.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-caracal-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 0x7f052fa4c430>timeout=0uid=1022gid=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.EbWEaP
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(packaging)'
+ echo 'python3dist(pip) >= 19'
+ '[' -f pyproject.toml ']'
+ '[' -f setup.py ']'
+ echo 'python3dist(setuptools) >= 40.8'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/ironic-24.1.4.dev12/.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-24.1.4.dev12/.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-24.1.4.dev12/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires -t -e py39
Handling setuptools >= 40.8 from default build backend
Requirement satisfied: setuptools >= 40.8
   (installed: setuptools 65.5.1)
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.36.2)
Handling pbr>=2.0.0 from get_requires_for_build_wheel
Requirement satisfied: pbr>=2.0.0
   (installed: pbr 6.0.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement satisfied: tox-current-env >= 0.0.6
   (installed: tox-current-env 0.0.8)
___________________________________ summary ____________________________________
  py39: commands succeeded
  congratulations :)
Handling pbr>=3.1.1 from tox --print-deps-only: py39
Requirement satisfied: pbr>=3.1.1
   (installed: pbr 6.0.0)
Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py39
Requirement satisfied: SQLAlchemy>=1.4.0
   (installed: SQLAlchemy 1.4.51)
Handling alembic>=1.4.2 from tox --print-deps-only: py39
Requirement satisfied: alembic>=1.4.2
   (installed: alembic 1.8.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.35.1)
Handling WebOb>=1.7.1 from tox --print-deps-only: py39
Requirement not satisfied: WebOb>=1.7.1
Handling python-cinderclient!=4.0.0,>=3.3.0 from tox --print-deps-only: py39
Requirement not satisfied: python-cinderclient!=4.0.0,>=3.3.0
Handling python-glanceclient>=2.8.0 from tox --print-deps-only: py39
Requirement not satisfied: python-glanceclient>=2.8.0
Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py39
Requirement not satisfied: keystoneauth1>=4.2.0
Handling ironic-lib>=6.0.0 from tox --print-deps-only: py39
Requirement not satisfied: ironic-lib>=6.0.0
Handling stevedore>=1.29.0 from tox --print-deps-only: py39
Requirement satisfied: stevedore>=1.29.0
   (installed: stevedore 5.2.0)
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.4.0)
Handling oslo.context>=2.22.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.context>=2.22.0
Handling oslo.db>=9.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.db>=9.1.0
   (installed: oslo.db 15.0.0)
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>=3.7.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.policy>=3.7.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.28.1,>=1.24.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.service!=1.28.1,>=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>=4.5.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.utils>=4.5.0
   (installed: oslo.utils 7.1.0)
Handling osprofiler>=1.5.0 from tox --print-deps-only: py39
Requirement not satisfied: osprofiler>=1.5.0
Handling os-traits>=0.4.0 from tox --print-deps-only: py39
Requirement not satisfied: os-traits>=0.4.0
Handling pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 from tox --print-deps-only: py39
Requirement not satisfied: pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=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.31.0)
Handling rfc3986>=1.2.0 from tox --print-deps-only: py39
Requirement satisfied: rfc3986>=1.2.0
   (installed: rfc3986 1.5.0)
Handling jsonpatch!=1.20,>=1.16 from tox --print-deps-only: py39
Requirement not satisfied: jsonpatch!=1.20,>=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 not satisfied: psutil>=3.2.2
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.48.0 from tox --print-deps-only: py39
Requirement not satisfied: openstacksdk>=0.48.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 0.10.1)
Handling coverage!=4.4,>=4.0 from tox --print-deps-only: py39
Requirement not satisfied: coverage!=4.4,>=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.0.1)
Handling PyMySQL>=0.8.0 from tox --print-deps-only: py39
Requirement satisfied: PyMySQL>=0.8.0
   (installed: PyMySQL 0.10.1)
Handling iso8601>=0.1.11 from tox --print-deps-only: py39
Requirement satisfied: iso8601>=0.1.11
   (installed: iso8601 1.1.0)
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.0)
Handling stestr>=2.0.0 from tox --print-deps-only: py39
Requirement not satisfied: stestr>=2.0.0
Handling psycopg2>=2.8.5 from tox --print-deps-only: py39
Requirement satisfied: psycopg2>=2.8.5
   (installed: psycopg2 2.9.9)
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-24.1.4.dev12/ironic-24.1.4.dev12.dist-info'
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
adding license file "AUTHORS" (matched pattern "AUTHORS*")
Handling pbr (>=3.1.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pbr (>=3.1.1)
   (installed: pbr 6.0.0)
Handling SQLAlchemy (>=1.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: SQLAlchemy (>=1.4.0)
   (installed: SQLAlchemy 1.4.51)
Handling alembic (>=1.4.2) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: alembic (>=1.4.2)
   (installed: alembic 1.8.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.35.1)
Handling WebOb (>=1.7.1) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: WebOb (>=1.7.1)
Handling python-cinderclient (!=4.0.0,>=3.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: python-cinderclient (!=4.0.0,>=3.3.0)
Handling python-glanceclient (>=2.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: python-glanceclient (>=2.8.0)
Handling keystoneauth1 (>=4.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: keystoneauth1 (>=4.2.0)
Handling ironic-lib (>=6.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: ironic-lib (>=6.0.0)
Handling stevedore (>=1.29.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: stevedore (>=1.29.0)
   (installed: stevedore 5.2.0)
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.4.0)
Handling oslo.context (>=2.22.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.context (>=2.22.0)
Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.db (>=9.1.0)
   (installed: oslo.db 15.0.0)
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 (>=3.7.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.policy (>=3.7.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.28.1,>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.service (!=1.28.1,>=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 (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=4.5.0)
   (installed: oslo.utils 7.1.0)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: osprofiler (>=1.5.0)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: os-traits (>=0.4.0)
Handling pecan (!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: pecan (!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=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.31.0)
Handling rfc3986 (>=1.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: rfc3986 (>=1.2.0)
   (installed: rfc3986 1.5.0)
Handling jsonpatch (!=1.20,>=1.16) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: jsonpatch (!=1.20,>=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 not satisfied: psutil (>=3.2.2)
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.48.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: openstacksdk (>=0.48.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 0.10.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.4,>=4.0) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: coverage (!=4.4,>=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 iso8601 (>=0.1.11) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: iso8601 (>=0.1.11) ; 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 psycopg2 (>=2.8.5) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: psycopg2 (>=2.8.5) ; 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-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-24.1.4.dev12.dist-info/
removed 'ironic-24.1.4.dev12.dist-info/LICENSE'
removed 'ironic-24.1.4.dev12.dist-info/AUTHORS'
removed 'ironic-24.1.4.dev12.dist-info/METADATA'
removed 'ironic-24.1.4.dev12.dist-info/entry_points.txt'
removed 'ironic-24.1.4.dev12.dist-info/pbr.json'
removed 'ironic-24.1.4.dev12.dist-info/top_level.txt'
removed directory 'ironic-24.1.4.dev12.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-caracal-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 0x7f052fa4c430>timeout=0uid=1022gid=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.LavQ8o
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(packaging)'
+ echo 'python3dist(pip) >= 19'
+ '[' -f pyproject.toml ']'
+ '[' -f setup.py ']'
+ echo 'python3dist(setuptools) >= 40.8'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/ironic-24.1.4.dev12/.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-24.1.4.dev12/.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-24.1.4.dev12/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires -t -e py39
Handling setuptools >= 40.8 from default build backend
Requirement satisfied: setuptools >= 40.8
   (installed: setuptools 65.5.1)
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.36.2)
Handling pbr>=2.0.0 from get_requires_for_build_wheel
Requirement satisfied: pbr>=2.0.0
   (installed: pbr 6.0.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement satisfied: tox-current-env >= 0.0.6
   (installed: tox-current-env 0.0.8)
___________________________________ summary ____________________________________
  py39: commands succeeded
  congratulations :)
Handling pbr>=3.1.1 from tox --print-deps-only: py39
Requirement satisfied: pbr>=3.1.1
   (installed: pbr 6.0.0)
Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py39
Requirement satisfied: SQLAlchemy>=1.4.0
   (installed: SQLAlchemy 1.4.51)
Handling alembic>=1.4.2 from tox --print-deps-only: py39
Requirement satisfied: alembic>=1.4.2
   (installed: alembic 1.8.1)
Handling automaton>=1.9.0 from tox --print-deps-only: py39
Requirement satisfied: automaton>=1.9.0
   (installed: automaton 3.2.0)
Handling eventlet>=0.30.1 from tox --print-deps-only: py39
Requirement satisfied: eventlet>=0.30.1
   (installed: eventlet 0.35.1)
Handling WebOb>=1.7.1 from tox --print-deps-only: py39
Requirement satisfied: WebOb>=1.7.1
   (installed: WebOb 1.8.7)
Handling python-cinderclient!=4.0.0,>=3.3.0 from tox --print-deps-only: py39
Requirement satisfied: python-cinderclient!=4.0.0,>=3.3.0
   (installed: python-cinderclient 9.5.0)
Handling python-glanceclient>=2.8.0 from tox --print-deps-only: py39
Requirement satisfied: python-glanceclient>=2.8.0
   (installed: python-glanceclient 4.5.0)
Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py39
Requirement satisfied: keystoneauth1>=4.2.0
   (installed: keystoneauth1 5.6.0)
Handling ironic-lib>=6.0.0 from tox --print-deps-only: py39
Requirement satisfied: ironic-lib>=6.0.0
   (installed: ironic-lib 6.0.0)
Handling stevedore>=1.29.0 from tox --print-deps-only: py39
Requirement satisfied: stevedore>=1.29.0
   (installed: stevedore 5.2.0)
Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.concurrency>=4.2.0
   (installed: oslo.concurrency 6.0.0)
Handling oslo.config>=6.8.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.config>=6.8.0
   (installed: oslo.config 9.4.0)
Handling oslo.context>=2.22.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.context>=2.22.0
   (installed: oslo.context 5.5.0)
Handling oslo.db>=9.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.db>=9.1.0
   (installed: oslo.db 15.0.0)
Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.rootwrap>=5.8.0
   (installed: oslo.rootwrap 7.2.0)
Handling oslo.log>=4.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.log>=4.3.0
   (installed: oslo.log 5.5.1)
Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.middleware>=3.31.0
   (installed: oslo.middleware 6.1.0)
Handling oslo.policy>=3.7.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.policy>=3.7.0
   (installed: oslo.policy 4.3.0)
Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.serialization>=2.25.0
   (installed: oslo.serialization 5.4.1)
Handling oslo.service!=1.28.1,>=1.24.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.service!=1.28.1,>=1.24.0
   (installed: oslo.service 3.4.1)
Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.upgradecheck>=1.3.0
   (installed: oslo.upgradecheck 2.3.0)
Handling oslo.utils>=4.5.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.utils>=4.5.0
   (installed: oslo.utils 7.1.0)
Handling osprofiler>=1.5.0 from tox --print-deps-only: py39
Requirement satisfied: osprofiler>=1.5.0
   (installed: osprofiler 4.1.0)
Handling os-traits>=0.4.0 from tox --print-deps-only: py39
Requirement satisfied: os-traits>=0.4.0
   (installed: os-traits 3.0.0)
Handling pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 from tox --print-deps-only: py39
Requirement satisfied: pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0
   (installed: pecan 1.4.2)
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.31.0)
Handling rfc3986>=1.2.0 from tox --print-deps-only: py39
Requirement satisfied: rfc3986>=1.2.0
   (installed: rfc3986 1.5.0)
Handling jsonpatch!=1.20,>=1.16 from tox --print-deps-only: py39
Requirement satisfied: jsonpatch!=1.20,>=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.6.0)
Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.messaging>=14.1.0
   (installed: oslo.messaging 14.7.2)
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.3.0)
Handling jsonschema>=4.0.0 from tox --print-deps-only: py39
Requirement satisfied: jsonschema>=4.0.0
   (installed: jsonschema 4.16.0)
Handling psutil>=3.2.2 from tox --print-deps-only: py39
Requirement satisfied: psutil>=3.2.2
   (installed: psutil 5.8.0)
Handling futurist>=1.2.0 from tox --print-deps-only: py39
Requirement satisfied: futurist>=1.2.0
   (installed: futurist 3.0.0)
Handling tooz>=2.7.0 from tox --print-deps-only: py39
Requirement satisfied: tooz>=2.7.0
   (installed: tooz 6.2.0)
Handling openstacksdk>=0.48.0 from tox --print-deps-only: py39
Requirement satisfied: openstacksdk>=0.48.0
   (installed: openstacksdk 3.0.0)
Handling sushy>=4.8.0 from tox --print-deps-only: py39
Requirement satisfied: sushy>=4.8.0
   (installed: sushy 5.0.0)
Handling construct>=2.9.39 from tox --print-deps-only: py39
Requirement satisfied: construct>=2.9.39
   (installed: construct 2.10.70)
Handling netaddr from tox --print-deps-only: py39
Requirement satisfied: netaddr
   (installed: netaddr 0.10.1)
Handling coverage!=4.4,>=4.0 from tox --print-deps-only: py39
Requirement satisfied: coverage!=4.4,>=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.0.1)
Handling PyMySQL>=0.8.0 from tox --print-deps-only: py39
Requirement satisfied: PyMySQL>=0.8.0
   (installed: PyMySQL 0.10.1)
Handling iso8601>=0.1.11 from tox --print-deps-only: py39
Requirement satisfied: iso8601>=0.1.11
   (installed: iso8601 1.1.0)
Handling oslo.reports>=1.18.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.reports>=1.18.0
   (installed: oslo.reports 3.3.0)
Handling oslotest>=3.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslotest>=3.2.0
   (installed: oslotest 5.0.0)
Handling stestr>=2.0.0 from tox --print-deps-only: py39
Requirement satisfied: stestr>=2.0.0
   (installed: stestr 4.1.0)
Handling psycopg2>=2.8.5 from tox --print-deps-only: py39
Requirement satisfied: psycopg2>=2.8.5
   (installed: psycopg2 2.9.9)
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.5.1)
Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py39
Requirement satisfied: pyasn1-modules>=0.3.0
   (installed: 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-24.1.4.dev12/ironic-24.1.4.dev12.dist-info'
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
adding license file "AUTHORS" (matched pattern "AUTHORS*")
Handling pbr (>=3.1.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pbr (>=3.1.1)
   (installed: pbr 6.0.0)
Handling SQLAlchemy (>=1.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: SQLAlchemy (>=1.4.0)
   (installed: SQLAlchemy 1.4.51)
Handling alembic (>=1.4.2) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: alembic (>=1.4.2)
   (installed: alembic 1.8.1)
Handling automaton (>=1.9.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: automaton (>=1.9.0)
   (installed: automaton 3.2.0)
Handling eventlet (>=0.30.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: eventlet (>=0.30.1)
   (installed: eventlet 0.35.1)
Handling WebOb (>=1.7.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: WebOb (>=1.7.1)
   (installed: WebOb 1.8.7)
Handling python-cinderclient (!=4.0.0,>=3.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: python-cinderclient (!=4.0.0,>=3.3.0)
   (installed: python-cinderclient 9.5.0)
Handling python-glanceclient (>=2.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: python-glanceclient (>=2.8.0)
   (installed: python-glanceclient 4.5.0)
Handling keystoneauth1 (>=4.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: keystoneauth1 (>=4.2.0)
   (installed: keystoneauth1 5.6.0)
Handling ironic-lib (>=6.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: ironic-lib (>=6.0.0)
   (installed: ironic-lib 6.0.0)
Handling stevedore (>=1.29.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: stevedore (>=1.29.0)
   (installed: stevedore 5.2.0)
Handling oslo.concurrency (>=4.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.concurrency (>=4.2.0)
   (installed: oslo.concurrency 6.0.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.4.0)
Handling oslo.context (>=2.22.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.context (>=2.22.0)
   (installed: oslo.context 5.5.0)
Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.db (>=9.1.0)
   (installed: oslo.db 15.0.0)
Handling oslo.rootwrap (>=5.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.rootwrap (>=5.8.0)
   (installed: oslo.rootwrap 7.2.0)
Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.log (>=4.3.0)
   (installed: oslo.log 5.5.1)
Handling oslo.middleware (>=3.31.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.middleware (>=3.31.0)
   (installed: oslo.middleware 6.1.0)
Handling oslo.policy (>=3.7.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.policy (>=3.7.0)
   (installed: oslo.policy 4.3.0)
Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.serialization (>=2.25.0)
   (installed: oslo.serialization 5.4.1)
Handling oslo.service (!=1.28.1,>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.service (!=1.28.1,>=1.24.0)
   (installed: oslo.service 3.4.1)
Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.upgradecheck (>=1.3.0)
   (installed: oslo.upgradecheck 2.3.0)
Handling oslo.utils (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=4.5.0)
   (installed: oslo.utils 7.1.0)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: osprofiler (>=1.5.0)
   (installed: osprofiler 4.1.0)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: os-traits (>=0.4.0)
   (installed: os-traits 3.0.0)
Handling pecan (!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pecan (!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0)
   (installed: pecan 1.4.2)
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.31.0)
Handling rfc3986 (>=1.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: rfc3986 (>=1.2.0)
   (installed: rfc3986 1.5.0)
Handling jsonpatch (!=1.20,>=1.16) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: jsonpatch (!=1.20,>=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.6.0)
Handling oslo.messaging (>=14.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.messaging (>=14.1.0)
   (installed: oslo.messaging 14.7.2)
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.3.0)
Handling jsonschema (>=4.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: jsonschema (>=4.0.0)
   (installed: jsonschema 4.16.0)
Handling psutil (>=3.2.2) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: psutil (>=3.2.2)
   (installed: psutil 5.8.0)
Handling futurist (>=1.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: futurist (>=1.2.0)
   (installed: futurist 3.0.0)
Handling tooz (>=2.7.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: tooz (>=2.7.0)
   (installed: tooz 6.2.0)
Handling openstacksdk (>=0.48.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: openstacksdk (>=0.48.0)
   (installed: openstacksdk 3.0.0)
Handling sushy (>=4.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: sushy (>=4.8.0)
   (installed: sushy 5.0.0)
Handling construct (>=2.9.39) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: construct (>=2.9.39)
   (installed: construct 2.10.70)
Handling netaddr from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: netaddr
   (installed: netaddr 0.10.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.4,>=4.0) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: coverage (!=4.4,>=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 iso8601 (>=0.1.11) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: iso8601 (>=0.1.11) ; 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 psycopg2 (>=2.8.5) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: psycopg2 (>=2.8.5) ; 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-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-24.1.4.dev12.dist-info/
removed 'ironic-24.1.4.dev12.dist-info/AUTHORS'
removed 'ironic-24.1.4.dev12.dist-info/LICENSE'
removed 'ironic-24.1.4.dev12.dist-info/METADATA'
removed 'ironic-24.1.4.dev12.dist-info/top_level.txt'
removed 'ironic-24.1.4.dev12.dist-info/pbr.json'
removed 'ironic-24.1.4.dev12.dist-info/entry_points.txt'
removed directory 'ironic-24.1.4.dev12.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-caracal-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 0x7f052fa4c430>timeout=0uid=1022gid=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.CVz7Xc
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(packaging)'
+ echo 'python3dist(pip) >= 19'
+ '[' -f pyproject.toml ']'
+ '[' -f setup.py ']'
+ echo 'python3dist(setuptools) >= 40.8'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/ironic-24.1.4.dev12/.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-24.1.4.dev12/.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-24.1.4.dev12/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires -t -e py39
Handling setuptools >= 40.8 from default build backend
Requirement satisfied: setuptools >= 40.8
   (installed: setuptools 65.5.1)
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.36.2)
Handling pbr>=2.0.0 from get_requires_for_build_wheel
Requirement satisfied: pbr>=2.0.0
   (installed: pbr 6.0.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement satisfied: tox-current-env >= 0.0.6
   (installed: tox-current-env 0.0.8)
___________________________________ summary ____________________________________
  py39: commands succeeded
  congratulations :)
Handling pbr>=3.1.1 from tox --print-deps-only: py39
Requirement satisfied: pbr>=3.1.1
   (installed: pbr 6.0.0)
Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py39
Requirement satisfied: SQLAlchemy>=1.4.0
   (installed: SQLAlchemy 1.4.51)
Handling alembic>=1.4.2 from tox --print-deps-only: py39
Requirement satisfied: alembic>=1.4.2
   (installed: alembic 1.8.1)
Handling automaton>=1.9.0 from tox --print-deps-only: py39
Requirement satisfied: automaton>=1.9.0
   (installed: automaton 3.2.0)
Handling eventlet>=0.30.1 from tox --print-deps-only: py39
Requirement satisfied: eventlet>=0.30.1
   (installed: eventlet 0.35.1)
Handling WebOb>=1.7.1 from tox --print-deps-only: py39
Requirement satisfied: WebOb>=1.7.1
   (installed: WebOb 1.8.7)
Handling python-cinderclient!=4.0.0,>=3.3.0 from tox --print-deps-only: py39
Requirement satisfied: python-cinderclient!=4.0.0,>=3.3.0
   (installed: python-cinderclient 9.5.0)
Handling python-glanceclient>=2.8.0 from tox --print-deps-only: py39
Requirement satisfied: python-glanceclient>=2.8.0
   (installed: python-glanceclient 4.5.0)
Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py39
Requirement satisfied: keystoneauth1>=4.2.0
   (installed: keystoneauth1 5.6.0)
Handling ironic-lib>=6.0.0 from tox --print-deps-only: py39
Requirement satisfied: ironic-lib>=6.0.0
   (installed: ironic-lib 6.0.0)
Handling stevedore>=1.29.0 from tox --print-deps-only: py39
Requirement satisfied: stevedore>=1.29.0
   (installed: stevedore 5.2.0)
Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.concurrency>=4.2.0
   (installed: oslo.concurrency 6.0.0)
Handling oslo.config>=6.8.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.config>=6.8.0
   (installed: oslo.config 9.4.0)
Handling oslo.context>=2.22.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.context>=2.22.0
   (installed: oslo.context 5.5.0)
Handling oslo.db>=9.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.db>=9.1.0
   (installed: oslo.db 15.0.0)
Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.rootwrap>=5.8.0
   (installed: oslo.rootwrap 7.2.0)
Handling oslo.log>=4.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.log>=4.3.0
   (installed: oslo.log 5.5.1)
Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.middleware>=3.31.0
   (installed: oslo.middleware 6.1.0)
Handling oslo.policy>=3.7.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.policy>=3.7.0
   (installed: oslo.policy 4.3.0)
Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.serialization>=2.25.0
   (installed: oslo.serialization 5.4.1)
Handling oslo.service!=1.28.1,>=1.24.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.service!=1.28.1,>=1.24.0
   (installed: oslo.service 3.4.1)
Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.upgradecheck>=1.3.0
   (installed: oslo.upgradecheck 2.3.0)
Handling oslo.utils>=4.5.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.utils>=4.5.0
   (installed: oslo.utils 7.1.0)
Handling osprofiler>=1.5.0 from tox --print-deps-only: py39
Requirement satisfied: osprofiler>=1.5.0
   (installed: osprofiler 4.1.0)
Handling os-traits>=0.4.0 from tox --print-deps-only: py39
Requirement satisfied: os-traits>=0.4.0
   (installed: os-traits 3.0.0)
Handling pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 from tox --print-deps-only: py39
Requirement satisfied: pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0
   (installed: pecan 1.4.2)
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.31.0)
Handling rfc3986>=1.2.0 from tox --print-deps-only: py39
Requirement satisfied: rfc3986>=1.2.0
   (installed: rfc3986 1.5.0)
Handling jsonpatch!=1.20,>=1.16 from tox --print-deps-only: py39
Requirement satisfied: jsonpatch!=1.20,>=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.6.0)
Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.messaging>=14.1.0
   (installed: oslo.messaging 14.7.2)
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.3.0)
Handling jsonschema>=4.0.0 from tox --print-deps-only: py39
Requirement satisfied: jsonschema>=4.0.0
   (installed: jsonschema 4.16.0)
Handling psutil>=3.2.2 from tox --print-deps-only: py39
Requirement satisfied: psutil>=3.2.2
   (installed: psutil 5.8.0)
Handling futurist>=1.2.0 from tox --print-deps-only: py39
Requirement satisfied: futurist>=1.2.0
   (installed: futurist 3.0.0)
Handling tooz>=2.7.0 from tox --print-deps-only: py39
Requirement satisfied: tooz>=2.7.0
   (installed: tooz 6.2.0)
Handling openstacksdk>=0.48.0 from tox --print-deps-only: py39
Requirement satisfied: openstacksdk>=0.48.0
   (installed: openstacksdk 3.0.0)
Handling sushy>=4.8.0 from tox --print-deps-only: py39
Requirement satisfied: sushy>=4.8.0
   (installed: sushy 5.0.0)
Handling construct>=2.9.39 from tox --print-deps-only: py39
Requirement satisfied: construct>=2.9.39
   (installed: construct 2.10.70)
Handling netaddr from tox --print-deps-only: py39
Requirement satisfied: netaddr
   (installed: netaddr 0.10.1)
Handling coverage!=4.4,>=4.0 from tox --print-deps-only: py39
Requirement satisfied: coverage!=4.4,>=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.0.1)
Handling PyMySQL>=0.8.0 from tox --print-deps-only: py39
Requirement satisfied: PyMySQL>=0.8.0
   (installed: PyMySQL 0.10.1)
Handling iso8601>=0.1.11 from tox --print-deps-only: py39
Requirement satisfied: iso8601>=0.1.11
   (installed: iso8601 1.1.0)
Handling oslo.reports>=1.18.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.reports>=1.18.0
   (installed: oslo.reports 3.3.0)
Handling oslotest>=3.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslotest>=3.2.0
   (installed: oslotest 5.0.0)
Handling stestr>=2.0.0 from tox --print-deps-only: py39
Requirement satisfied: stestr>=2.0.0
   (installed: stestr 4.1.0)
Handling psycopg2>=2.8.5 from tox --print-deps-only: py39
Requirement satisfied: psycopg2>=2.8.5
   (installed: psycopg2 2.9.9)
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.5.1)
Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py39
Requirement satisfied: pyasn1-modules>=0.3.0
   (installed: 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-24.1.4.dev12/ironic-24.1.4.dev12.dist-info'
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
adding license file "AUTHORS" (matched pattern "AUTHORS*")
Handling pbr (>=3.1.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pbr (>=3.1.1)
   (installed: pbr 6.0.0)
Handling SQLAlchemy (>=1.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: SQLAlchemy (>=1.4.0)
   (installed: SQLAlchemy 1.4.51)
Handling alembic (>=1.4.2) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: alembic (>=1.4.2)
   (installed: alembic 1.8.1)
Handling automaton (>=1.9.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: automaton (>=1.9.0)
   (installed: automaton 3.2.0)
Handling eventlet (>=0.30.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: eventlet (>=0.30.1)
   (installed: eventlet 0.35.1)
Handling WebOb (>=1.7.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: WebOb (>=1.7.1)
   (installed: WebOb 1.8.7)
Handling python-cinderclient (!=4.0.0,>=3.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: python-cinderclient (!=4.0.0,>=3.3.0)
   (installed: python-cinderclient 9.5.0)
Handling python-glanceclient (>=2.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: python-glanceclient (>=2.8.0)
   (installed: python-glanceclient 4.5.0)
Handling keystoneauth1 (>=4.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: keystoneauth1 (>=4.2.0)
   (installed: keystoneauth1 5.6.0)
Handling ironic-lib (>=6.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: ironic-lib (>=6.0.0)
   (installed: ironic-lib 6.0.0)
Handling stevedore (>=1.29.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: stevedore (>=1.29.0)
   (installed: stevedore 5.2.0)
Handling oslo.concurrency (>=4.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.concurrency (>=4.2.0)
   (installed: oslo.concurrency 6.0.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.4.0)
Handling oslo.context (>=2.22.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.context (>=2.22.0)
   (installed: oslo.context 5.5.0)
Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.db (>=9.1.0)
   (installed: oslo.db 15.0.0)
Handling oslo.rootwrap (>=5.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.rootwrap (>=5.8.0)
   (installed: oslo.rootwrap 7.2.0)
Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.log (>=4.3.0)
   (installed: oslo.log 5.5.1)
Handling oslo.middleware (>=3.31.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.middleware (>=3.31.0)
   (installed: oslo.middleware 6.1.0)
Handling oslo.policy (>=3.7.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.policy (>=3.7.0)
   (installed: oslo.policy 4.3.0)
Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.serialization (>=2.25.0)
   (installed: oslo.serialization 5.4.1)
Handling oslo.service (!=1.28.1,>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.service (!=1.28.1,>=1.24.0)
   (installed: oslo.service 3.4.1)
Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.upgradecheck (>=1.3.0)
   (installed: oslo.upgradecheck 2.3.0)
Handling oslo.utils (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=4.5.0)
   (installed: oslo.utils 7.1.0)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: osprofiler (>=1.5.0)
   (installed: osprofiler 4.1.0)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: os-traits (>=0.4.0)
   (installed: os-traits 3.0.0)
Handling pecan (!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pecan (!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0)
   (installed: pecan 1.4.2)
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.31.0)
Handling rfc3986 (>=1.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: rfc3986 (>=1.2.0)
   (installed: rfc3986 1.5.0)
Handling jsonpatch (!=1.20,>=1.16) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: jsonpatch (!=1.20,>=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.6.0)
Handling oslo.messaging (>=14.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.messaging (>=14.1.0)
   (installed: oslo.messaging 14.7.2)
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.3.0)
Handling jsonschema (>=4.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: jsonschema (>=4.0.0)
   (installed: jsonschema 4.16.0)
Handling psutil (>=3.2.2) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: psutil (>=3.2.2)
   (installed: psutil 5.8.0)
Handling futurist (>=1.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: futurist (>=1.2.0)
   (installed: futurist 3.0.0)
Handling tooz (>=2.7.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: tooz (>=2.7.0)
   (installed: tooz 6.2.0)
Handling openstacksdk (>=0.48.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: openstacksdk (>=0.48.0)
   (installed: openstacksdk 3.0.0)
Handling sushy (>=4.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: sushy (>=4.8.0)
   (installed: sushy 5.0.0)
Handling construct (>=2.9.39) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: construct (>=2.9.39)
   (installed: construct 2.10.70)
Handling netaddr from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: netaddr
   (installed: netaddr 0.10.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.4,>=4.0) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: coverage (!=4.4,>=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 iso8601 (>=0.1.11) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: iso8601 (>=0.1.11) ; 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 psycopg2 (>=2.8.5) ; extra == 'test' from hook generated metadata: Requires-Dist (ironic)
Ignoring alien requirement: psycopg2 (>=2.8.5) ; 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-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-24.1.4.dev12.dist-info/
removed 'ironic-24.1.4.dev12.dist-info/LICENSE'
removed 'ironic-24.1.4.dev12.dist-info/AUTHORS'
removed 'ironic-24.1.4.dev12.dist-info/METADATA'
removed 'ironic-24.1.4.dev12.dist-info/entry_points.txt'
removed 'ironic-24.1.4.dev12.dist-info/pbr.json'
removed 'ironic-24.1.4.dev12.dist-info/top_level.txt'
removed directory 'ironic-24.1.4.dev12.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.PunfVG
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ mkdir -p /builddir/build/BUILD/ironic-24.1.4.dev12/.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-24.1.4.dev12/.pyproject-builddir
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-24.1.4.dev12/pyproject-wheeldir
Processing /builddir/build/BUILD/ironic-24.1.4.dev12
  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-24.1.4.dev12/.pyproject-builddir/tmp77t5_hug
  /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-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info
  writing /builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info/PKG-INFO
  writing dependency_links to /builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info/dependency_links.txt
  writing entry points to /builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info/entry_points.txt
  writing requirements to /builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info/requires.txt
  writing top-level names to /builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info/top_level.txt
  writing pbr to /builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info/pbr.json
  [pbr] Processing SOURCES.txt
  writing manifest file '/builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/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-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic.egg-info/SOURCES.txt'
  creating '/builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-modern-metadata-n5oku_da/ironic-24.1.4.dev12.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-24.1.4.dev12/.pyproject-builddir/tmp6q6vt_z1
  /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/drivers
  creating build/lib/ironic/drivers/modules
  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
  creating build/lib/ironic/tests/unit
  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/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/tests/unit/drivers
  creating build/lib/ironic/tests/unit/drivers/modules
  creating build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/base.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  creating build/lib/ironic/tests/functional
  copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional
  creating build/lib/ironic/common
  copying ironic/common/wsgi_service.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/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/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/image_format_inspector.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/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/async_steps.py -> build/lib/ironic/common
  copying ironic/common/args.py -> build/lib/ironic/common
  copying ironic/common/__init__.py -> build/lib/ironic/common
  creating build/lib/ironic/tests/unit/drivers/modules/storage
  copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage
  copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage
  copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage
  creating build/lib/ironic/hacking
  copying ironic/hacking/checks.py -> build/lib/ironic/hacking
  copying ironic/hacking/__init__.py -> build/lib/ironic/hacking
  copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit
  copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit
  copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit
  copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit
  copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit
  copying ironic/tests/base.py -> build/lib/ironic/tests
  copying ironic/tests/__init__.py -> build/lib/ironic/tests
  creating build/lib/ironic/tests/unit/api
  creating build/lib/ironic/tests/unit/api/controllers
  creating build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_shard.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_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_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/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
  copying ironic/version.py -> build/lib/ironic
  copying ironic/__init__.py -> build/lib/ironic
  creating build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  creating build/lib/ironic/pxe_filter
  copying ironic/pxe_filter/service.py -> build/lib/ironic/pxe_filter
  copying ironic/pxe_filter/dnsmasq.py -> build/lib/ironic/pxe_filter
  copying ironic/pxe_filter/__init__.py -> build/lib/ironic/pxe_filter
  creating build/lib/ironic/drivers/modules/inspector
  creating build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/root_device.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/raid_device.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/ports.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/physical_network.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/memory.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/base.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/architecture.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/accelerators.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/__init__.py -> build/lib/ironic/drivers/modules/inspector/hooks
  creating build/lib/ironic/tests/unit/cmd
  copying ironic/tests/unit/cmd/test_status.py -> build/lib/ironic/tests/unit/cmd
  copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib/ironic/tests/unit/cmd
  copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd
  copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd
  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
  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/inspector
  copying ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  copying ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  copying ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  copying ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  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_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_power.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_base.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules
  creating build/lib/ironic/tests/unit/db
  creating build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  creating build/lib/ironic/tests/unit/drivers/modules/ansible
  copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible
  copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible
  creating build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/vendor.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/power.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc
  copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc
  creating build/lib/ironic/tests/unit/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/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/firmware_utils.py -> build/lib/ironic/drivers/modules/redfish
  copying ironic/drivers/modules/redfish/firmware.py -> build/lib/ironic/drivers/modules/redfish
  copying ironic/drivers/modules/redfish/boot.py -> build/lib/ironic/drivers/modules/redfish
  copying ironic/drivers/modules/redfish/bios.py -> build/lib/ironic/drivers/modules/redfish
  copying ironic/drivers/modules/redfish/__init__.py -> build/lib/ironic/drivers/modules/redfish
  creating build/lib/ironic/tests/unit/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/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/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/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/indirection.py -> build/lib/ironic/objects
  copying ironic/objects/firmware.py -> build/lib/ironic/objects
  copying ironic/objects/fields.py -> build/lib/ironic/objects
  copying ironic/objects/deployment.py -> build/lib/ironic/objects
  copying ironic/objects/deploy_template.py -> build/lib/ironic/objects
  copying ironic/objects/conductor.py -> build/lib/ironic/objects
  copying ironic/objects/chassis.py -> build/lib/ironic/objects
  copying ironic/objects/bios.py -> build/lib/ironic/objects
  copying ironic/objects/base.py -> build/lib/ironic/objects
  copying ironic/objects/allocation.py -> build/lib/ironic/objects
  copying ironic/objects/__init__.py -> build/lib/ironic/objects
  copying ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/test_xclarity.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_ibmc.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/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/conf
  copying ironic/conf/xclarity.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/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_statsd.py -> build/lib/ironic/conf
  copying ironic/conf/metrics.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/ibmc.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/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.py -> build/lib/ironic/conf
  copying ironic/conf/__init__.py -> build/lib/ironic/conf
  creating build/lib/ironic/drivers/modules/storage
  copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage
  copying ironic/drivers/modules/storage/external.py -> build/lib/ironic/drivers/modules/storage
  copying ironic/drivers/modules/storage/cinder.py -> build/lib/ironic/drivers/modules/storage
  copying ironic/drivers/modules/storage/__init__.py -> build/lib/ironic/drivers/modules/storage
  creating build/lib/ironic/api
  creating build/lib/ironic/api/controllers
  creating build/lib/ironic/api/controllers/v1
  copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1
  copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1
  copying ironic/api/controllers/v1/volume.py -> build/lib/ironic/api/controllers/v1
  copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1
  copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1
  copying ironic/api/controllers/v1/shard.py -> build/lib/ironic/api/controllers/v1
  copying ironic/api/controllers/v1/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/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/conf
  copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf
  copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf
  creating build/lib/ironic/tests/unit/drivers/modules/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/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/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/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/job.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/common.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
  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/xclarity
  copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity
  copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity
  copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity
  copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity
  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_ports.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_portgroups.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_nodes.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_node_traits.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_node_tags.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_node_inventory.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_node_history.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_firmware_component.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_deploy_templates.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_conductor.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_bios_settings.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/test_allocations.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db
  copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db
  creating build/lib/ironic/tests/unit/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_power.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.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_job.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_common.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/test_bios.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
  copying ironic/drivers/xclarity.py -> build/lib/ironic/drivers
  copying ironic/drivers/utils.py -> build/lib/ironic/drivers
  copying ironic/drivers/snmp.py -> build/lib/ironic/drivers
  copying ironic/drivers/redfish.py -> build/lib/ironic/drivers
  copying ironic/drivers/irmc.py -> build/lib/ironic/drivers
  copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers
  copying ironic/drivers/intel_ipmi.py -> build/lib/ironic/drivers
  copying ironic/drivers/ilo.py -> build/lib/ironic/drivers
  copying ironic/drivers/ibmc.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
  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/fake.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent_power.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent_base.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules
  copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers
  creating build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy
  creating build/lib/ironic/drivers/modules/ibmc
  copying ironic/drivers/modules/ibmc/vendor.py -> build/lib/ironic/drivers/modules/ibmc
  copying ironic/drivers/modules/ibmc/utils.py -> build/lib/ironic/drivers/modules/ibmc
  copying ironic/drivers/modules/ibmc/raid.py -> build/lib/ironic/drivers/modules/ibmc
  copying ironic/drivers/modules/ibmc/power.py -> build/lib/ironic/drivers/modules/ibmc
  copying ironic/drivers/modules/ibmc/mappings.py -> build/lib/ironic/drivers/modules/ibmc
  copying ironic/drivers/modules/ibmc/management.py -> build/lib/ironic/drivers/modules/ibmc
  copying ironic/drivers/modules/ibmc/__init__.py -> build/lib/ironic/drivers/modules/ibmc
  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/cmd
  copying ironic/cmd/status.py -> build/lib/ironic/cmd
  copying ironic/cmd/singleprocess.py -> build/lib/ironic/cmd
  copying ironic/cmd/pxe_filter.py -> build/lib/ironic/cmd
  copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd
  copying ironic/cmd/conductor.py -> build/lib/ironic/cmd
  copying ironic/cmd/api.py -> build/lib/ironic/cmd
  copying ironic/cmd/__init__.py -> build/lib/ironic/cmd
  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/api/middleware
  copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware
  copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware
  copying ironic/api/middleware/auth_public_routes.py -> build/lib/ironic/api/middleware
  copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware
  creating build/lib/ironic/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
  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/common/glance_service
  copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service
  copying ironic/common/glance_service/image_service.py -> build/lib/ironic/common/glance_service
  copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service
  creating build/lib/ironic/tests/unit/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/dhcp
  copying ironic/dhcp/none.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/base.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp
  creating build/lib/ironic/tests/unit/drivers/modules/xclarity
  copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity
  copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity
  copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity
  copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity
  creating build/lib/ironic/tests/unit/common
  copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common
  copying ironic/tests/unit/common/test_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_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_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_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_format_inspector.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.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)
  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/common/grub_conf.template -> build/lib/ironic/common
  copying ironic/common/isolinux_config.template -> build/lib/ironic/common
  creating build/lib/ironic/tests/json_samples
  copying ironic/tests/json_samples/network_data.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/tests/unit/drivers/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers
  copying ironic/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1
  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/api/test_acl_basic.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers
  copying ironic/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/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/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/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/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/tests/unit/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
  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/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/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/cmd
  copying build/lib/ironic/cmd/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/cmd
  copying build/lib/ironic/cmd/api.py -> build/bdist.linux-x86_64/wheel/ironic/cmd
  copying build/lib/ironic/cmd/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/cmd
  copying build/lib/ironic/cmd/dbsync.py -> build/bdist.linux-x86_64/wheel/ironic/cmd
  copying build/lib/ironic/cmd/pxe_filter.py -> build/bdist.linux-x86_64/wheel/ironic/cmd
  copying build/lib/ironic/cmd/singleprocess.py -> build/bdist.linux-x86_64/wheel/ironic/cmd
  copying build/lib/ironic/cmd/status.py -> build/bdist.linux-x86_64/wheel/ironic/cmd
  creating build/bdist.linux-x86_64/wheel/ironic/api
  creating build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/middleware/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/middleware/auth_public_routes.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/middleware/json_ext.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/middleware/parsable_error.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api
  copying build/lib/ironic/api/app.py -> build/bdist.linux-x86_64/wheel/ironic/api
  copying build/lib/ironic/api/config.py -> build/bdist.linux-x86_64/wheel/ironic/api
  copying build/lib/ironic/api/functions.py -> build/bdist.linux-x86_64/wheel/ironic/api
  copying build/lib/ironic/api/hooks.py -> build/bdist.linux-x86_64/wheel/ironic/api
  copying build/lib/ironic/api/method.py -> build/bdist.linux-x86_64/wheel/ironic/api
  copying build/lib/ironic/api/wsgi.py -> build/bdist.linux-x86_64/wheel/ironic/api
  creating build/bdist.linux-x86_64/wheel/ironic/api/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/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/shard.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1
  copying build/lib/ironic/api/controllers/v1/utils.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1
  copying build/lib/ironic/api/controllers/v1/versions.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1
  copying build/lib/ironic/api/controllers/v1/volume.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1
  copying build/lib/ironic/api/controllers/v1/volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1
  copying build/lib/ironic/api/controllers/v1/volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers/v1
  creating build/bdist.linux-x86_64/wheel/ironic/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/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/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/ibmc.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/metrics.py -> build/bdist.linux-x86_64/wheel/ironic/conf
  copying build/lib/ironic/conf/metrics_statsd.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/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/xclarity.py -> build/bdist.linux-x86_64/wheel/ironic/conf
  creating build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/allocation.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/base.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/bios.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/chassis.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/deployment.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/fields.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/indirection.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/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/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/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/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/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/1a59178ebdf6_add_volume_targets_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic/README -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic.ini -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/api.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/models.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db
  copying build/lib/ironic/db/api.py -> build/bdist.linux-x86_64/wheel/ironic/db
  copying build/lib/ironic/db/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db
  creating build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/service.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/__init__.py -> build/bdist.linux-x86_64/wheel/ironic
  copying build/lib/ironic/version.py -> build/bdist.linux-x86_64/wheel/ironic
  creating build/bdist.linux-x86_64/wheel/ironic/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/common
  copying build/lib/ironic/common/isolinux_config.template -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/grub_conf.template -> build/bdist.linux-x86_64/wheel/ironic/common
  creating build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  copying build/lib/ironic/common/glance_service/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  copying build/lib/ironic/common/glance_service/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  copying build/lib/ironic/common/glance_service/service_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  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/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/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_format_inspector.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/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/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/wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  creating build/bdist.linux-x86_64/wheel/ironic/tests
  creating build/bdist.linux-x86_64/wheel/ironic/tests/json_samples
  copying build/lib/ironic/tests/json_samples/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_format_inspector.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_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_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_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_wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_cleaning.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_deployments.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_inspection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_periodics.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_servicing.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_steps.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_verify.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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/dhcp
  copying build/lib/ironic/tests/unit/dhcp/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp
  copying build/lib/ironic/tests/unit/dhcp/test_dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp
  copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp
  copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/db
  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_shard.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db
  copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db
  copying build/lib/ironic/tests/unit/db/test_volume_targets.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db
  copying build/lib/ironic/tests/unit/db/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy
  copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy
  copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy
  copying build/lib/ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy
  copying build/lib/ironic/tests/unit/db/sqlalchemy/test_models.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy
  copying build/lib/ironic/tests/unit/db/sqlalchemy/test_types.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/cmd
  copying build/lib/ironic/tests/unit/cmd/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/cmd
  copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/cmd
  copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/cmd
  copying build/lib/ironic/tests/unit/cmd/test_status.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/cmd
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_legacy.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_acl_basic.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_acl.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_audit.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_functions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_hooks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_method.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_proxy_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_collection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_event.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_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_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/__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/drivers
  copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/boot-fallback.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_drac.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_fake_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_generic.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_ibmc.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/test_xclarity.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity
  copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity
  copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity
  copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity
  copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_power.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/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/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_bios.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_common.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_job.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_periodic_task.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_power.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/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/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/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_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/inspector
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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/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/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
  copying build/lib/ironic/tests/unit/drivers/modules/ibmc/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc
  copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc
  copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc
  copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc
  copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc
  copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc
  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/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/ibmc.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
  copying build/lib/ironic/drivers/xclarity.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/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/ibmc
  copying build/lib/ironic/drivers/modules/ibmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ibmc
  copying build/lib/ironic/drivers/modules/ibmc/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ibmc
  copying build/lib/ironic/drivers/modules/ibmc/mappings.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ibmc
  copying build/lib/ironic/drivers/modules/ibmc/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ibmc
  copying build/lib/ironic/drivers/modules/ibmc/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ibmc
  copying build/lib/ironic/drivers/modules/ibmc/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ibmc
  copying build/lib/ironic/drivers/modules/ibmc/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ibmc
  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/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/xclarity
  copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/xclarity
  copying build/lib/ironic/drivers/modules/xclarity/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/xclarity
  copying build/lib/ironic/drivers/modules/xclarity/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/xclarity
  copying build/lib/ironic/drivers/modules/xclarity/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/xclarity
  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/common.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/job.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/intel_ipmi
  copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi
  copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/external.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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
  copying build/lib/ironic/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/agent.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/client.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/interface.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/lldp_parsers.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/lldp_tlvs.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/architecture.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/memory.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/ports.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/root_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/console.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible
  copying build/lib/ironic/drivers/modules/ansible/deploy.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible
  running install_data
  creating build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.data
  creating build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.data/data
  creating build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.data/data/etc
  creating build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.data/data/etc/ironic
  copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.data/data/etc/ironic
  creating build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.data/data/etc/ironic/rootwrap.d
  copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.data/data/etc/ironic/rootwrap.d/
  running install_egg_info
  Copying ironic.egg-info to build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12-py3.9.egg-info
  running install_scripts
  Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-24.1.4.dev12.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-24.1.4.dev12.dist-info/WHEEL
  creating '/builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir/pip-wheel-qdop0ln8/tmpu6x1ymlx/ironic-24.1.4.dev12-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/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/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/cmd/__init__.py'
  adding 'ironic/cmd/api.py'
  adding 'ironic/cmd/conductor.py'
  adding 'ironic/cmd/dbsync.py'
  adding 'ironic/cmd/pxe_filter.py'
  adding 'ironic/cmd/singleprocess.py'
  adding 'ironic/cmd/status.py'
  adding 'ironic/common/__init__.py'
  adding 'ironic/common/args.py'
  adding 'ironic/common/async_steps.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/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_format_inspector.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/molds.py'
  adding 'ironic/common/network.py'
  adding 'ironic/common/neutron.py'
  adding 'ironic/common/nova.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/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/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/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/fake.py'
  adding 'ironic/conf/glance.py'
  adding 'ironic/conf/healthcheck.py'
  adding 'ironic/conf/ibmc.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/metrics.py'
  adding 'ironic/conf/metrics_statsd.py'
  adding 'ironic/conf/molds.py'
  adding 'ironic/conf/neutron.py'
  adding 'ironic/conf/nova.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/xclarity.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/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/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/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/ibmc.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/xclarity.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/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/common.py'
  adding 'ironic/drivers/modules/drac/inspect.py'
  adding 'ironic/drivers/modules/drac/job.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/ibmc/__init__.py'
  adding 'ironic/drivers/modules/ibmc/management.py'
  adding 'ironic/drivers/modules/ibmc/mappings.py'
  adding 'ironic/drivers/modules/ibmc/power.py'
  adding 'ironic/drivers/modules/ibmc/raid.py'
  adding 'ironic/drivers/modules/ibmc/utils.py'
  adding 'ironic/drivers/modules/ibmc/vendor.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/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/drivers/modules/xclarity/__init__.py'
  adding 'ironic/drivers/modules/xclarity/common.py'
  adding 'ironic/drivers/modules/xclarity/management.py'
  adding 'ironic/drivers/modules/xclarity/power.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/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/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/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_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_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/cmd/__init__.py'
  adding 'ironic/tests/unit/cmd/test_conductor.py'
  adding 'ironic/tests/unit/cmd/test_dbsync.py'
  adding 'ironic/tests/unit/cmd/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_format_inspector.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_keystone.py'
  adding 'ironic/tests/unit/common/test_kickstart_utils.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_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_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/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_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_ibmc.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/test_xclarity.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_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_bios.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_boot.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_common.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_inspect.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_job.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_periodic_task.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_power.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/ibmc/base.py'
  adding 'ironic/tests/unit/drivers/modules/ibmc/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/ibmc/test_power.py'
  adding 'ironic/tests/unit/drivers/modules/ibmc/test_raid.py'
  adding 'ironic/tests/unit/drivers/modules/ibmc/test_utils.py'
  adding 'ironic/tests/unit/drivers/modules/ibmc/test_vendor.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/drivers/modules/xclarity/test_common.py'
  adding 'ironic/tests/unit/drivers/modules/xclarity/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/xclarity/test_power.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-24.1.4.dev12.data/data/etc/ironic/rootwrap.conf'
  adding 'ironic-24.1.4.dev12.data/data/etc/ironic/rootwrap.d/ironic-utils.filters'
  adding 'ironic-24.1.4.dev12.data/scripts/ironic-api-wsgi'
  adding 'ironic-24.1.4.dev12.dist-info/AUTHORS'
  adding 'ironic-24.1.4.dev12.dist-info/LICENSE'
  adding 'ironic-24.1.4.dev12.dist-info/METADATA'
  adding 'ironic-24.1.4.dev12.dist-info/WHEEL'
  adding 'ironic-24.1.4.dev12.dist-info/entry_points.txt'
  adding 'ironic-24.1.4.dev12.dist-info/pbr.json'
  adding 'ironic-24.1.4.dev12.dist-info/top_level.txt'
  adding 'ironic-24.1.4.dev12.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-24.1.4.dev12-py3-none-any.whl size=2069089 sha256=34e6d32b1aa60fffed86fbe7567acbb2ddcd817030a0f3b43dcd54d0a9a5168b
  Stored in directory: /builddir/.cache/pip/wheels/46/bd/2b/bb3c6a6f8c0e6470299381ad0bb8a0f22ee28ba707547d9c96
Successfully built ironic
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.4oMsGC
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64 '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64
++ dirname /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64
+ cd ironic-24.1.4.dev12
++ xargs basename --multiple
++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/'
++ ls /builddir/build/BUILD/ironic-24.1.4.dev12/pyproject-wheeldir/ironic-24.1.4.dev12-py3-none-any.whl
+ specifier=ironic==24.1.4.dev12
+ '[' -z ironic==24.1.4.dev12 ']'
+ TMPDIR=/builddir/build/BUILD/ironic-24.1.4.dev12/.pyproject-builddir
+ /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4.dev12/pyproject-wheeldir ironic==24.1.4.dev12
Using pip 21.3.1 from /usr/lib/python3.9/site-packages/pip (python 3.9)
Looking in links: /builddir/build/BUILD/ironic-24.1.4.dev12/pyproject-wheeldir
Processing ./pyproject-wheeldir/ironic-24.1.4.dev12-py3-none-any.whl
Installing collected packages: ironic
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-api to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-conductor to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-dbsync to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-pxe-filter to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-rootwrap to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-status to 755
Successfully installed ironic-24.1.4.dev12
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-status
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic: updating
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-api: updating
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-api-wsgi: updating
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-conductor: updating
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-dbsync: updating
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-pxe-filter: updating
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-rootwrap: updating
/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/ironic-status: updating
+ rm -rfv /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin/__pycache__
+ rm -f /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-ghost-distinfo
+ site_dirs=()
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages ']'
+ site_dirs+=("/usr/lib/python3.9/site-packages")
+ '[' /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib64/python3.9/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages ']'
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib64/python3.9/site-packages ']'
+ for site_dir in ${site_dirs[@]}
+ for distinfo in /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64$site_dir/*.dist-info
+ echo '%ghost /usr/lib/python3.9/site-packages/ironic-24.1.4.dev12.dist-info'
+ sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.4.dev12.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.4.dev12.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64-pyproject-record
+ rm -fv /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.4.dev12.dist-info/RECORD
removed '/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.4.dev12.dist-info/RECORD'
+ rm -fv /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.4.dev12.dist-info/REQUESTED
removed '/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.4.dev12.dist-info/REQUESTED'
++ wc -l /builddir/build/BUILD/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64/etc/logrotate.d/openstack-ironic
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/systemd/system
+ install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-api.service /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/systemd/system
+ install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic-conductor.service /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/systemd/system
+ install -p -D -m 644 /builddir/build/SOURCES/openstack-ironic.service /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/systemd/system
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/etc/sudoers.d
+ install -p -D -m 440 /builddir/build/SOURCES/ironic-sudoers /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/etc/sudoers.d/ironic
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/var/lib/ironic/
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/var/log/ironic/
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/etc/ironic/rootwrap.d
+ export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64//usr/lib/python3.9/site-packages
+ PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64//etc/ironic/ironic.conf
+ oslopolicy-sample-generator --config-file tools/policy/ironic-policy-generator.conf
+ mv /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64//etc/ironic/rootwrap.conf
+ mv /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64//etc/ironic/rootwrap.d/
+ rmdir /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/etc/ironic/rootwrap.d
+ rmdir /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/etc/ironic
+ install -p -D -m 640 /builddir/build/SOURCES/ironic-dist.conf /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64//etc/ironic/dnsmasq-tftp-server.conf
+ /usr/bin/find-debuginfo -j4 --strict-build-id -m -i --build-id-seed 24.1.4-0.20250328101425.1e9877f.el9 --unique-debug-suffix -24.1.4-0.20250328101425.1e9877f.el9.x86_64 --unique-debug-src-base openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4.dev12
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-24.1.4-0.20250328101425.1e9877f.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/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.fNej2g
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ 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-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
+ PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib64/python3.9/site-packages:/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages
+ PYTHONDONTWRITEBYTECODE=1
+ PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-24.1.4.dev12/.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)
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.206121s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-feb137e0-2247-4855-a82a-924dbc19b0c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-fe9e58d6-bf58-40c5-a01a-7d8e4e290bec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running stamp_revision  -> 01f21d5e5195
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.211861s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/5c692401-059c-4f28-9952-d9e5e44e39c5 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0932a553-6d66-4a5c-9843-b9edd6317d7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 5c692401-059c-4f28-9952-d9e5e44e39c5 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.076203s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-50ec84af-8027-4602-82cb-f2248965d316
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.317334s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/47ca4c34-d46f-46e2-90fe-5410a4411dfa GOT Response: 204 No Content
Openstack-Request-Id: req-db319709-6947-45f1-9bde-0214af5acd56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
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  -> 01f21d5e5195
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.066015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-90ab51d2-fcf3-4b25-8dab-b75b85147aaf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_base.TestBase.test_api_setup [0.317718s] ... 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  -> 01f21d5e5195
{3} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.024495s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.038089s] ... 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-d83e9461-9e89-46de-a9ce-94df618659ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.024028s] ... ok
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.020779s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event [0.040546s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7027bb2c-af57-4f9c-9e21-42456497f80d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.062820s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-97149c0c-ecde-4f35-9c24-863c62b0ebaa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version [0.035460s] ... 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-10a240e2-23a0-491f-ac33-08ac951fb66c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.047070s] ... 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-cd0d6838-5605-4fbd-9bb4-d597ae0e5cac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.230756s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1 GOT Response: 204 No Content
Openstack-Request-Id: req-b5c97e7d-5126-4b80-8525-19fd511d5c90
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.030052s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c95b34cb-abd0-491f-a7ec-b90af926ab6d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events [0.035128s] ... 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-95a946d0-46cb-4e0d-b635-1a5970c7ffb0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.032623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content
Openstack-Request-Id: req-b33bcfd0-384f-4fd2-9a08-2c9f04caa73b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.436537s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/7cdd24b6-7b13-4689-aa30-2f7fceca5414 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a71f7abd-ed3a-4404-b222-47184e754ee9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "7cdd24b6-7b13-4689-aa30-2f7fceca5414", "created_at": "2025-03-28T10:18:01.818530+00:00", "updated_at": "2025-03-28T10:18:01.877501+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/7cdd24b6-7b13-4689-aa30-2f7fceca5414", "rel": "self"}, {"href": "http://localhost/allocations/7cdd24b6-7b13-4689-aa30-2f7fceca5414", "rel": "bookmark"}], "node_uuid": null}
Captured stderr:
~~~~~~~~~~~~~~~~
    INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running stamp_revision  -> 01f21d5e5195
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.040281s] ... 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-2f71c1aa-4f77-41d7-adb2-265cd708e5e1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.032327s] ... 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-35af6c41-3f69-48f4-8a83-8b389a2eee26
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.275200s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.069326s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content
Openstack-Request-Id: req-a8b6284a-561d-4a6a-94a7-57bb20b95391
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type [0.032227s] ... 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-d20b3366-45cd-40f7-85b4-0c5445023c5e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.test_base.TestVersion.test_lessthan [0.024970s] ... ok
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.020370s] ... ok
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.021822s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id [0.054542s] ... 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-b93477a5-0ac0-4dad-95c1-0f4337c2c485
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.067414s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.024575s] ... ok
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.020847s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.053518s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/e90f9b14-5682-4eb7-8979-aef305786c9a/allocation GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-921d531e-a785-400b-9e22-8c9ef1baab38
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node e90f9b14-5682-4eb7-8979-aef305786c9a was not found\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.033350s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address [0.079003s] ... 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-b1f86bc6-94da-4a2b-9f0c-5d9cfcaa4349
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.029091s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/326bef0e-2d47-4d06-83a6-2927595a10b7 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.027931s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/ba!na!na1 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.254224s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/a01fe387-d25a-41a9-bf10-e8afdb8eb4b0 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-fba9c947-4e36-41b8-b542-c85a7df8919e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "a01fe387-d25a-41a9-bf10-e8afdb8eb4b0", "created_at": "2025-03-28T10:18:02.125812+00:00", "updated_at": "2025-03-28T10:18:02.140864+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/a01fe387-d25a-41a9-bf10-e8afdb8eb4b0", "rel": "self"}, {"href": "http://localhost/allocations/a01fe387-d25a-41a9-bf10-e8afdb8eb4b0", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/a01fe387-d25a-41a9-bf10-e8afdb8eb4b0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0afc449b-0c27-4115-90bf-4fc86523ed35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "a01fe387-d25a-41a9-bf10-e8afdb8eb4b0", "created_at": "2025-03-28T10:18:02.125812+00:00", "updated_at": "2025-03-28T10:18:02.140864+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/a01fe387-d25a-41a9-bf10-e8afdb8eb4b0", "rel": "self"}, {"href": "http://localhost/allocations/a01fe387-d25a-41a9-bf10-e8afdb8eb4b0", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.056364s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.029902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/5bc0cf8f-f780-4baa-9092-26976b2021ba WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f654322d-95bf-4f97-9ae1-905ca52035ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.035715s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/d7690243-04e3-4eb1-ad46-06ed55072e25/allocation GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6cab386f-923c-45aa-b08b-b1bcda1d89ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d7690243-04e3-4eb1-ad46-06ed55072e25 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.067511s] ... 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-9bd5a58c-441f-47a8-af86-cdcd962e2517
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.051144s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.043300s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/6da0935d-dc82-4e70-bc90-59e71128362b GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-0b410424-5f4b-4469-b300-fc26de9e8c1c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.063853s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a5934bff-1a7d-4797-947b-fd7f9e8a603c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "created_at": "2025-03-28T10:18:02.204139+00:00", "updated_at": "2025-03-28T10:18:02.218426+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/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "self"}, {"href": "http://localhost/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b319ce88-31c9-4723-87e2-56b37f14ce88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "created_at": "2025-03-28T10:18:02.204139+00:00", "updated_at": "2025-03-28T10:18:02.218426+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/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "self"}, {"href": "http://localhost/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "bookmark"}], "node_uuid": null}
PATCH /v1/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b902dec2-efcd-46a8-9a2b-a26a89bfc2fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "created_at": "2025-03-28T10:18:02.204139+00:00", "updated_at": "2025-03-28T10:18:02.237344+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "self"}, {"href": "http://localhost/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-15e21a52-0067-4286-b2c6-4d428122b06f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "created_at": "2025-03-28T10:18:02.204139+00:00", "updated_at": "2025-03-28T10:18:02.237344+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "self"}, {"href": "http://localhost/allocations/4b5aa586-a1e0-403e-af4f-ea4f2191fd4d", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.029535s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fd1ac200-98c2-4798-904f-c56369780425
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_event.TestPostRBAC.test_network_port_event_invalid_status [0.065878s] ... 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-2d69e1d1-97c9-4df0-b0af-8f9193fabdb5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.031530s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/3e5c48ee-88cc-47af-834a-eaa834bf5af4 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3ee885f8-c52c-4c40-8784-6fcc403509c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.030557s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c6398cb8-0438-4270-a07e-6717232b875d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.030395s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-da77266f-20b4-4273-a5d6-ce8f9366793a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPatch.test_remove_singular [0.046012s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/33138b58-37ff-4d99-ab96-6d4348388046 WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0de63db-f8e8-40a9-af4a-2a690a415caf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "33138b58-37ff-4d99-ab96-6d4348388046", "created_at": "2025-03-28T10:18:02.300088+00:00", "updated_at": "2025-03-28T10:18:02.314045+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/33138b58-37ff-4d99-ab96-6d4348388046", "rel": "self"}, {"href": "http://localhost/allocations/33138b58-37ff-4d99-ab96-6d4348388046", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/33138b58-37ff-4d99-ab96-6d4348388046 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-caf321e0-a463-49f0-af56-1babdc4645e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "33138b58-37ff-4d99-ab96-6d4348388046", "created_at": "2025-03-28T10:18:02.300088+00:00", "updated_at": "2025-03-28T10:18:02.314045+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/33138b58-37ff-4d99-ab96-6d4348388046", "rel": "self"}, {"href": "http://localhost/allocations/33138b58-37ff-4d99-ab96-6d4348388046", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events [0.076005s] ... 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-62b63c27-dbcf-4f3f-b5a5-3a7638f8cf69
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.119153s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content
Openstack-Request-Id: req-15f74fd2-cd61-4250-9379-c4826cc9246e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.030117s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.034659s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/275cdea9-c8cc-4a07-9ef9-0690ff648e78 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f159dcd7-c9b0-41fd-8aa9-d89ac5bc3410
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.030768s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1eec689e-2163-4d2b-bf89-5d05eda377c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.029992s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/9d5df676-a9e8-4a76-9ab0-5543a9d07e0c WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9f3b5d82-ee57-46e8-b9b5-aa35790d1524
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property [0.070166s] ... 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-f5e3b732-d97f-4758-bb51-dd3e4f97c543
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.031867s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content
Openstack-Request-Id: req-8e6583c9-8efe-42fb-82e0-2a4ca1bf86bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.045149s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/f133b0b5-78e4-4727-9fe1-1f797fb16ad9 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a88217b-c891-47c9-bee4-a346fbbc7e24
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f133b0b5-78e4-4727-9fe1-1f797fb16ad9", "created_at": "2025-03-28T10:18:02.412916+00:00", "updated_at": "2025-03-28T10:18:02.427110+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/f133b0b5-78e4-4727-9fe1-1f797fb16ad9", "rel": "self"}, {"href": "http://localhost/allocations/f133b0b5-78e4-4727-9fe1-1f797fb16ad9", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/f133b0b5-78e4-4727-9fe1-1f797fb16ad9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-80e82c0f-45ba-4385-a8f8-8e8db3466ab7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f133b0b5-78e4-4727-9fe1-1f797fb16ad9", "created_at": "2025-03-28T10:18:02.412916+00:00", "updated_at": "2025-03-28T10:18:02.427110+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/f133b0b5-78e4-4727-9fe1-1f797fb16ad9", "rel": "self"}, {"href": "http://localhost/allocations/f133b0b5-78e4-4727-9fe1-1f797fb16ad9", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.087846s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-74431eef-ad7d-4348-8e7c-d5fbbcc91cf3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"allocations": [{"uuid": "bb4a528c-b17c-4943-b2c7-8b30941d89cc", "created_at": "2025-03-28T10:18:02.395673+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/bb4a528c-b17c-4943-b2c7-8b30941d89cc", "rel": "self"}, {"href": "http://localhost/allocations/bb4a528c-b17c-4943-b2c7-8b30941d89cc", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "996c2340-9038-45a9-a2e6-8041d13e5505", "created_at": "2025-03-28T10:18:02.396946+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/996c2340-9038-45a9-a2e6-8041d13e5505", "rel": "self"}, {"href": "http://localhost/allocations/996c2340-9038-45a9-a2e6-8041d13e5505", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "10fd9b4c-7244-438e-b2c3-6f8c7b978491", "created_at": "2025-03-28T10:18:02.397877+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/10fd9b4c-7244-438e-b2c3-6f8c7b978491", "rel": "self"}, {"href": "http://localhost/allocations/10fd9b4c-7244-438e-b2c3-6f8c7b978491", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "32c3bb5f-7c73-4e3a-828d-e7048e6c7e2f", "created_at": "2025-03-28T10:18:02.398846+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/32c3bb5f-7c73-4e3a-828d-e7048e6c7e2f", "rel": "self"}, {"href": "http://localhost/allocations/32c3bb5f-7c73-4e3a-828d-e7048e6c7e2f", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "7380775a-08be-4067-8e56-565ed20fbef9", "created_at": "2025-03-28T10:18:02.399779+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/7380775a-08be-4067-8e56-565ed20fbef9", "rel": "self"}, {"href": "http://localhost/allocations/7380775a-08be-4067-8e56-565ed20fbef9", "rel": "bookmark"}], "node_uuid": null}]}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.032176s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/d7e58d87-b9ea-4758-913c-fdf55a919bcc GOT Response: 204 No Content
Openstack-Request-Id: req-3485f229-5dc4-4d51-835f-396e29bd89d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.032003s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/51b53a9c-3a58-4abc-863c-9e7fcedc8ebb.json GOT Response: 204 No Content
Openstack-Request-Id: req-243e99af-c7be-4925-a5f3-c37a3693c351
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.044633s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d333ed94-b9d3-451c-b9c2-8a5b497eb6f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c", "created_at": "2025-03-28T10:18:02.456849+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/e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c", "rel": "self"}, {"href": "http://localhost/allocations/e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0189f3a3-e24a-4d10-8a25-800f2a06f827
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c", "created_at": "2025-03-28T10:18:02.456849+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/e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c", "rel": "self"}, {"href": "http://localhost/allocations/e329a8c1-0dd7-4f8a-ac81-6ab58db35c6c", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.089729s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '906b2e5d-fd14-44a9-a570-132aa4260879'} GOT Response: 204 No Content
Openstack-Request-Id: req-785e9853-c165-4ce6-a11e-7027513c2af0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.026947s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/88f35fd1-53f4-473f-b589-7cf6dafb2f38 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.TestPatch.test_replace_singular [0.047107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/9f24a528-dc92-4778-a940-04f71f8ec25d WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c8b79d0b-4a04-4df5-8b58-8485b08c679c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9f24a528-dc92-4778-a940-04f71f8ec25d", "created_at": "2025-03-28T10:18:02.501883+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/9f24a528-dc92-4778-a940-04f71f8ec25d", "rel": "self"}, {"href": "http://localhost/allocations/9f24a528-dc92-4778-a940-04f71f8ec25d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/9f24a528-dc92-4778-a940-04f71f8ec25d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3530005-035d-4c4e-8e60-91a906a30755
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9f24a528-dc92-4778-a940-04f71f8ec25d", "created_at": "2025-03-28T10:18:02.501883+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/9f24a528-dc92-4778-a940-04f71f8ec25d", "rel": "self"}, {"href": "http://localhost/allocations/9f24a528-dc92-4778-a940-04f71f8ec25d", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.093710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ba2509de-4b16-4c74-ad59-43da45370037 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a1f2e33a-2ee8-4b12-8fbe-0ea2c3993ad0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "ba2509de-4b16-4c74-ad59-43da45370037", "created_at": "2025-03-28T10:18:02.489059+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/ba2509de-4b16-4c74-ad59-43da45370037", "rel": "self"}, {"href": "http://localhost/allocations/ba2509de-4b16-4c74-ad59-43da45370037", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/ba2509de-4b16-4c74-ad59-43da45370037 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dcf52cec-fd77-4e72-aa0c-6d58138b8b2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ba2509de-4b16-4c74-ad59-43da45370037", "created_at": "2025-03-28T10:18:02.489059+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/ba2509de-4b16-4c74-ad59-43da45370037", "rel": "self"}, {"href": "http://localhost/allocations/ba2509de-4b16-4c74-ad59-43da45370037", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.027287s] ... 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_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.051572s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-39/vifs WITH {'id': 'ae14649e-7baa-41d4-b0df-3539879933fc'} GOT Response: 204 No Content
Openstack-Request-Id: req-febc8321-33fa-4f36-a067-bcc52ccc17f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.047326s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '060e1f8a-5d65-47ea-b02d-d2c497aadd24', '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/060e1f8a-5d65-47ea-b02d-d2c497aadd24
Openstack-Request-Id: req-bbd3ed59-dfc5-4b55-9087-7f5e77448bd9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "060e1f8a-5d65-47ea-b02d-d2c497aadd24", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/060e1f8a-5d65-47ea-b02d-d2c497aadd24", "rel": "self"}, {"href": "http://localhost/deploy_templates/060e1f8a-5d65-47ea-b02d-d2c497aadd24", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/060e1f8a-5d65-47ea-b02d-d2c497aadd24 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2372a095-f71e-4167-80cd-2c286d115cbc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "060e1f8a-5d65-47ea-b02d-d2c497aadd24", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/060e1f8a-5d65-47ea-b02d-d2c497aadd24", "rel": "self"}, {"href": "http://localhost/deploy_templates/060e1f8a-5d65-47ea-b02d-d2c497aadd24", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.033136s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-39/vifs WITH {'id': 'b5b953dd-6e2d-4e3f-9388-fc6b7056602d'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-524fe2be-dfbe-4766-a80a-798b33821d81
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.066282s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/a66569db-feab-41a0-aa2d-0ff912ac755f WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-832cc307-c0d1-41bc-b177-ac356450a453
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field [0.076107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/d42e4fe2-0829-4297-bbf1-265b5f2f7f35 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a21843db-2e14-41e3-a45f-b0edf18cbcbc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d42e4fe2-0829-4297-bbf1-265b5f2f7f35", "created_at": "2025-03-28T10:18:02.581758+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/d42e4fe2-0829-4297-bbf1-265b5f2f7f35", "rel": "self"}, {"href": "http://localhost/allocations/d42e4fe2-0829-4297-bbf1-265b5f2f7f35", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.034034s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6a92c57c-4a12-4ddb-8f2d-ba18c7fbec1f', '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/6a92c57c-4a12-4ddb-8f2d-ba18c7fbec1f
Openstack-Request-Id: req-9d3155d2-44b5-48df-b280-597fd27b6066
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6a92c57c-4a12-4ddb-8f2d-ba18c7fbec1f", "created_at": "2025-03-28T10:18:02.616557+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6a92c57c-4a12-4ddb-8f2d-ba18c7fbec1f", "rel": "self"}, {"href": "http://localhost/deploy_templates/6a92c57c-4a12-4ddb-8f2d-ba18c7fbec1f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.029814s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/cc8c0190-4901-4d36-a710-9dd7cd2696e6 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
Openstack-Request-Id: req-7826fe95-9b39-47ca-a887-8413ceaf146d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.043895s] ... 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-fe1cb9ca-fade-44e7-a7f8-5f0636bc8d90
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for id: invalid%id^\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.040170s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/31fd582e-c671-4e65-8273-5404673bda1d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d558ea1b-ef1f-4fc4-92c1-39124abc155d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "31fd582e-c671-4e65-8273-5404673bda1d", "created_at": "2025-03-28T10:18:02.640663+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/31fd582e-c671-4e65-8273-5404673bda1d", "rel": "self"}, {"href": "http://localhost/allocations/31fd582e-c671-4e65-8273-5404673bda1d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.030937s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/6bf7dcb3-a63d-4858-8675-9269ea1c21e1 WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7be23f60-8ada-49a7-8e34-730c217b5acc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 6bf7dcb3-a63d-4858-8675-9269ea1c21e1 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.037546s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '40d47135-bd8f-49c1-a50a-538d932a7814', '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/40d47135-bd8f-49c1-a50a-538d932a7814
Openstack-Request-Id: req-1467385c-4d49-4c63-bf5d-ed9362dfaaf1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "40d47135-bd8f-49c1-a50a-538d932a7814", "created_at": "2025-03-28T10:18:02.651136+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/40d47135-bd8f-49c1-a50a-538d932a7814", "rel": "self"}, {"href": "http://localhost/deploy_templates/40d47135-bd8f-49c1-a50a-538d932a7814", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/40d47135-bd8f-49c1-a50a-538d932a7814 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-509f10c5-b30b-49b5-b849-0b2ebb049b5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "40d47135-bd8f-49c1-a50a-538d932a7814", "created_at": "2025-03-28T10:18:02.651136+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/40d47135-bd8f-49c1-a50a-538d932a7814", "rel": "self"}, {"href": "http://localhost/deploy_templates/40d47135-bd8f-49c1-a50a-538d932a7814", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.030855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/node/b3081838-fa9e-4543-a4eb-9941f2fc07c7/allocation WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable [0.030674s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/03315d37-b60d-484a-b5f4-7aa167284db7 WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6d3e9da3-12ad-4a6b-9e95-fa077c410455
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.033581s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '995959ae-a153-449d-ac24-b47ca5af22bb', '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-0f1c31ee-08ac-4955-bf85-5bcc082216d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.076375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': 'e1a4cf9e-0763-42fa-b2cc-e7fdce83ef52'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6a302bd8-619d-42b5-8ae3-553d7bd3176a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_allocation.TestListAllocations.test_by_node_resource_not_existed [0.033124s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/node/4ecdcabf-ae5a-451e-b64e-4f9ae1ed6c7a/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_deploy_template.TestPost.test_create_generate_uuid [0.040191s] ... 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/b6789631-d483-4807-a150-a8caf3547799
Openstack-Request-Id: req-c91b65de-4c8f-4486-a13e-ee37f220e553
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b6789631-d483-4807-a150-a8caf3547799", "created_at": "2025-03-28T10:18:02.725864+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b6789631-d483-4807-a150-a8caf3547799", "rel": "self"}, {"href": "http://localhost/deploy_templates/b6789631-d483-4807-a150-a8caf3547799", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/b6789631-d483-4807-a150-a8caf3547799 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cd26257-cc3c-4838-9878-bbbf31ca97b8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b6789631-d483-4807-a150-a8caf3547799", "created_at": "2025-03-28T10:18:02.725864+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b6789631-d483-4807-a150-a8caf3547799", "rel": "self"}, {"href": "http://localhost/deploy_templates/b6789631-d483-4807-a150-a8caf3547799", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.038180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'cc2746fd-32b0-4f94-91f3-fd9c0fd2cc40'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-d9b27043-72c5-4c81-ac29-f8f71cf7e4e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPost.test_backfill [0.063935s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd4c15094-cd6f-47f5-b5d5-83fa9985fdb0', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/d4c15094-cd6f-47f5-b5d5-83fa9985fdb0
Openstack-Request-Id: req-4343c024-f906-4614-a1f2-2471057259c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d4c15094-cd6f-47f5-b5d5-83fa9985fdb0", "created_at": "2025-03-28T10:18:02.736185+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/d4c15094-cd6f-47f5-b5d5-83fa9985fdb0", "rel": "self"}, {"href": "http://localhost/allocations/d4c15094-cd6f-47f5-b5d5-83fa9985fdb0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/d4c15094-cd6f-47f5-b5d5-83fa9985fdb0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fdefcdba-487a-48c8-8682-d82ac95dc1a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d4c15094-cd6f-47f5-b5d5-83fa9985fdb0", "created_at": "2025-03-28T10:18:02.736185+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/d4c15094-cd6f-47f5-b5d5-83fa9985fdb0", "rel": "self"}, {"href": "http://localhost/allocations/d4c15094-cd6f-47f5-b5d5-83fa9985fdb0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.021581s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '4d5e3d87-6d95-489f-9e88-b0e35d8cd247', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.044889s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f205a616-9b69-49d2-b080-7087544be828
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "f4e8d733-4a43-4df9-aa61-9a56ece76776", "created_at": "2025-03-28T10:18:02.743880+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/f4e8d733-4a43-4df9-aa61-9a56ece76776", "rel": "self"}, {"href": "http://localhost/allocations/f4e8d733-4a43-4df9-aa61-9a56ece76776", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b9a55f92-0292-4269-a5bf-712f94c794cb", "created_at": "2025-03-28T10:18:02.744811+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/b9a55f92-0292-4269-a5bf-712f94c794cb", "rel": "self"}, {"href": "http://localhost/allocations/b9a55f92-0292-4269-a5bf-712f94c794cb", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "0d233238-6e91-4b07-af7d-e7418a7f177d", "created_at": "2025-03-28T10:18:02.745764+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/0d233238-6e91-4b07-af7d-e7418a7f177d", "rel": "self"}, {"href": "http://localhost/allocations/0d233238-6e91-4b07-af7d-e7418a7f177d", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=0d233238-6e91-4b07-af7d-e7418a7f177d"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.030440s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '5ce79cbe-17f0-4579-9484-1e18d3fac29d', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-09d48a22-a918-4ad6-b4fa-d1135ed79e4b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.043485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c5336a9-fe61-4197-a125-4da26ec41542
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "9e028d31-ff0c-4841-a91b-15d08501b74c", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/9e028d31-ff0c-4841-a91b-15d08501b74c", "rel": "self"}, {"href": "http://localhost/allocations/9e028d31-ff0c-4841-a91b-15d08501b74c", "rel": "bookmark"}]}, {"uuid": "5e59005a-5cb8-40b2-b557-d0c32c54839f", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/5e59005a-5cb8-40b2-b557-d0c32c54839f", "rel": "self"}, {"href": "http://localhost/allocations/5e59005a-5cb8-40b2-b557-d0c32c54839f", "rel": "bookmark"}]}, {"uuid": "ad1db955-1950-4f85-82b9-97f067891a65", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/ad1db955-1950-4f85-82b9-97f067891a65", "rel": "self"}, {"href": "http://localhost/allocations/ad1db955-1950-4f85-82b9-97f067891a65", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=ad1db955-1950-4f85-82b9-97f067891a65"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.066700s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/doesntexist/vifs WITH {'id': 'aa128b61-3a97-4a21-88c6-2a29fa1e3caf'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ad7de26c-380a-4b1b-b44f-e5cf94128717
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPost.test_backfill_copy_instance_uuid [0.062818s] ... 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/aad4b576-a63e-4463-9a10-390dcabc6d4a
Openstack-Request-Id: req-c8b46587-1bdb-4945-b5fb-55da3ca86f28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "aad4b576-a63e-4463-9a10-390dcabc6d4a", "created_at": "2025-03-28T10:18:02.800436+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/aad4b576-a63e-4463-9a10-390dcabc6d4a", "rel": "self"}, {"href": "http://localhost/allocations/aad4b576-a63e-4463-9a10-390dcabc6d4a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/aad4b576-a63e-4463-9a10-390dcabc6d4a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb13e0f7-1835-40ec-83b7-4eb559f6ec53
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "aad4b576-a63e-4463-9a10-390dcabc6d4a", "created_at": "2025-03-28T10:18:02.800436+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/aad4b576-a63e-4463-9a10-390dcabc6d4a", "rel": "self"}, {"href": "http://localhost/allocations/aad4b576-a63e-4463-9a10-390dcabc6d4a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.030559s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'aa971d87-291d-494e-bfff-4244068acd43', '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-28fd2ce8-adb8-419e-b441-efce6cddff5f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_allocation.TestListAllocations.test_collection_links_default_limit [0.041137s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3c8624c7-43ef-4492-8fdd-b6769c438c5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "b2687036-b2c5-4e43-b03f-19b7b6647201", "created_at": "2025-03-28T10:18:02.835916+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/b2687036-b2c5-4e43-b03f-19b7b6647201", "rel": "self"}, {"href": "http://localhost/allocations/b2687036-b2c5-4e43-b03f-19b7b6647201", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "70917d1b-a0b2-4617-ae23-6200b2ac0452", "created_at": "2025-03-28T10:18:02.836842+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/70917d1b-a0b2-4617-ae23-6200b2ac0452", "rel": "self"}, {"href": "http://localhost/allocations/70917d1b-a0b2-4617-ae23-6200b2ac0452", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "d6d5e8fe-854a-4796-a72a-87c0acbe4fd4", "created_at": "2025-03-28T10:18:02.837751+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/d6d5e8fe-854a-4796-a72a-87c0acbe4fd4", "rel": "self"}, {"href": "http://localhost/allocations/d6d5e8fe-854a-4796-a72a-87c0acbe4fd4", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=d6d5e8fe-854a-4796-a72a-87c0acbe4fd4"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.032959s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8f2cc824-eb2a-41ac-b6ff-917fe92d5819', 'owner': None, 'node': '83c8a03e-977c-4445-9601-33737c0ad1d9'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0d3df7fa-c4d5-4c4c-ad73-65b3d87ed729
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 83c8a03e-977c-4445-9601-33737c0ad1d9 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.031748s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'f53ce340-ea45-4732-9ead-724aca770a3d', '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-bf233a34-b744-4062-bd33-5a406eba6c1d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.057934s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ef10709e-5787-466f-b4dd-3afe1391ed87', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-02c0e163-c542-43db-930d-9588bd35ab86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_allocation.TestListAllocations.test_empty [0.034983s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a636eab1-9b45-4ee1-9bf0-255c643379a9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": []}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.036563s] ... 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-dba2009d-b994-4009-8b8f-ef4abb420b3f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.57
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot set node when creating an allocation in this API version\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.034170s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'b1c12423-b777-45e6-88dd-202b7bbeb711', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content
Openstack-Request-Id: req-08a641c5-d8b0-43fa-aba7-bfb3ea7ac882
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.063276s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 42, 'uuid': '3c1a4df6-03fe-4c93-8ea7-0e0b5296b206', '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-3c4988e1-8d56-46d3-a0fb-aab378be0ff0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_backfill_with_name [0.046898s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '082b7946-c279-47b5-9c34-684f023676ea', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/082b7946-c279-47b5-9c34-684f023676ea
Openstack-Request-Id: req-6768dea2-34b4-4d55-a38a-8921a742e878
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "082b7946-c279-47b5-9c34-684f023676ea", "created_at": "2025-03-28T10:18:02.921084+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/082b7946-c279-47b5-9c34-684f023676ea", "rel": "self"}, {"href": "http://localhost/allocations/082b7946-c279-47b5-9c34-684f023676ea", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/082b7946-c279-47b5-9c34-684f023676ea WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c46277c-9c48-4c17-8270-bc9fb4fe503d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "082b7946-c279-47b5-9c34-684f023676ea", "created_at": "2025-03-28T10:18:02.921084+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/082b7946-c279-47b5-9c34-684f023676ea", "rel": "self"}, {"href": "http://localhost/allocations/082b7946-c279-47b5-9c34-684f023676ea", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.031665s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/f2c81a33-72de-4f77-b4c4-bdb254a5c7ea GOT Response: 204 No Content
Openstack-Request-Id: req-e3281b50-0bc3-45e5-8e6d-41de41999dab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.032233s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': None, 'uuid': 'f63648b8-9eac-48b7-b004-0c4ca00f2faa', '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-abd37b8a-7789-403a-b053-8477c3a5836f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.033022s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/vifs/30361c09-0ad9-4420-8cda-41613ba31572 GOT Response: 204 No Content
Openstack-Request-Id: req-16d92352-f61a-4ea6-8844-135b16726285
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.048190s] ... 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/42402048-2154-43bb-acc1-203e82ba9acf
Openstack-Request-Id: req-19a08f00-9f05-423e-91d7-7ad1da6b4bb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "42402048-2154-43bb-acc1-203e82ba9acf", "created_at": "2025-03-28T10:18:02.968162+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/42402048-2154-43bb-acc1-203e82ba9acf", "rel": "self"}, {"href": "http://localhost/allocations/42402048-2154-43bb-acc1-203e82ba9acf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/42402048-2154-43bb-acc1-203e82ba9acf WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b7755efc-dd2b-418f-942e-befa166a6906
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "42402048-2154-43bb-acc1-203e82ba9acf", "created_at": "2025-03-28T10:18:02.968162+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/42402048-2154-43bb-acc1-203e82ba9acf", "rel": "self"}, {"href": "http://localhost/allocations/42402048-2154-43bb-acc1-203e82ba9acf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.032339s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'fdccd31a-6387-4b9e-9bab-801940686b05', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9ff26848-5b5d-49b2-8420-46fa25decd3b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.107154s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-88f51792-a97f-48a0-b7da-39ee7373f24a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "06ab6462-c1f5-4fb2-ab26-fb2ff3919836", "created_at": "2025-03-28T10:18:02.922385+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/06ab6462-c1f5-4fb2-ab26-fb2ff3919836", "rel": "self"}, {"href": "http://localhost/allocations/06ab6462-c1f5-4fb2-ab26-fb2ff3919836", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e93101db-356d-4f76-9589-9afcb7e5aac5", "created_at": "2025-03-28T10:18:02.926347+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/e93101db-356d-4f76-9589-9afcb7e5aac5", "rel": "self"}, {"href": "http://localhost/allocations/e93101db-356d-4f76-9589-9afcb7e5aac5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d4763671-9b36-4848-9153-b8bba62d1f7c", "created_at": "2025-03-28T10:18:02.927323+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/d4763671-9b36-4848-9153-b8bba62d1f7c", "rel": "self"}, {"href": "http://localhost/allocations/d4763671-9b36-4848-9153-b8bba62d1f7c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.032125s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '1f40f20e-bd84-4483-88c1-f3286ae319f4', '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-1115a086-a4ba-49ca-9bd1-324a673af0f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.045936s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/631d7e9b-e78e-4ca1-9a4f-6244f26f3239 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-f1d7be8d-ba70-4d40-89cd-6508de6db946
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.039972s] ... 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-355ac0ee-8dee-4558-a852-1692c7206d29
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "6b786fa5-dde5-4e96-9557-ef836642adc1", "created_at": "2025-03-28T10:18:03.015190+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/6b786fa5-dde5-4e96-9557-ef836642adc1", "rel": "self"}, {"href": "http://localhost/allocations/6b786fa5-dde5-4e96-9557-ef836642adc1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.070981s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c
Openstack-Request-Id: req-c45b001e-2cdb-4d9a-8f7a-d30763fc5dea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c", "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/5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c", "rel": "self"}, {"href": "http://localhost/allocations/5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-59d8cb50-fe41-481c-8809-e709ece67e18
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c", "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/5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c", "rel": "self"}, {"href": "http://localhost/allocations/5ab2a67e-9ca8-42fb-95ae-97a5ef1f654c", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.034093s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '95a5f1da-e695-430a-b96c-810719bd7022', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6d8b7f68-2271-4898-960f-cc46f4b4fbb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.036289s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2aa9bd64-670e-438d-ba59-219921f194a6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.052843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/doesntexist/vifs/b651dc76-d770-4cd1-85d1-9cd63deede4f GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-06515589-3206-4699-9464-2a631a45b657
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPost.test_create_allocation_candidate_node_invalid [0.032366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '30f7f392-5154-470e-b90a-b5feb1be34b1', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d30fee75-11fa-4af2-91a7-02b88789fdcb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.032178s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '3912c56b-405f-43b9-ac32-a65dee72e791', '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-c1609cf2-4bf2-4286-807b-504b32313068
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.041491s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6f16ac91-d3cf-430c-bb58-8497d8356fe1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "36858468-c72d-444d-966c-8603ca50f86d", "created_at": "2025-03-28T10:18:03.099287+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/36858468-c72d-444d-966c-8603ca50f86d", "rel": "self"}, {"href": "http://localhost/allocations/36858468-c72d-444d-966c-8603ca50f86d", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "6ef68b99-7d09-4cd0-aca0-2360931f4330", "created_at": "2025-03-28T10:18:03.100317+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/6ef68b99-7d09-4cd0-aca0-2360931f4330", "rel": "self"}, {"href": "http://localhost/allocations/6ef68b99-7d09-4cd0-aca0-2360931f4330", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "deaf6c85-9b8e-456a-a89b-63b808ac1feb", "created_at": "2025-03-28T10:18:03.101250+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/deaf6c85-9b8e-456a-a89b-63b808ac1feb", "rel": "self"}, {"href": "http://localhost/allocations/deaf6c85-9b8e-456a-a89b-63b808ac1feb", "rel": "bookmark"}], "node_uuid": null}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.033403s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8132846d-d5c6-4e88-a0cc-995628823037', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a17b9790-7bf7-43e4-aa00-8f2945e6e898
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.031579s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '4f1830bd-d9bb-4268-b21c-1e86332d6e33', '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-2a520c1b-c7ae-4fa0-a92a-940ceb7fcbab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.033137s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-b9424848-e34f-45cc-8024-421910ad9670
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.067801s] ... 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-050b554a-ce37-46fb-9b37-849053fb9091
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"vifs": []}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.032809s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'c0896227-ad97-4a62-8375-cdac561e7b52', '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-360dd0ee-dbc8-40a2-89de-ea9fc920dfbb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.038005s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1ae15e9f-e0be-4003-823d-40bac97d8b7d', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/1ae15e9f-e0be-4003-823d-40bac97d8b7d
Openstack-Request-Id: req-f9aa75e2-1974-41c4-a210-b05991bf1671
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1ae15e9f-e0be-4003-823d-40bac97d8b7d", "created_at": "2025-03-28T10:18:03.150586+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/1ae15e9f-e0be-4003-823d-40bac97d8b7d", "rel": "self"}, {"href": "http://localhost/allocations/1ae15e9f-e0be-4003-823d-40bac97d8b7d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/1ae15e9f-e0be-4003-823d-40bac97d8b7d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6c620157-09ff-47c5-9960-def6f1c0ae86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1ae15e9f-e0be-4003-823d-40bac97d8b7d", "created_at": "2025-03-28T10:18:03.150586+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/1ae15e9f-e0be-4003-823d-40bac97d8b7d", "rel": "self"}, {"href": "http://localhost/allocations/1ae15e9f-e0be-4003-823d-40bac97d8b7d", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed_mismatch [0.036522s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7398c1fd-0fdc-4c0a-9513-82d2a107efeb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Not authorized.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.036668s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'aa7d39bb-13be-475a-9b28-20f8a604fb24', 'owner': None} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8552fe54-eb57-40f3-9311-48f594a45de0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.039974s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '2603d9e9-5516-441a-9125-463207b7837a', '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-66faef56-0c45-4208-b7e2-6fbdb775e5aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.042661s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1fb62c77-0b4b-499c-88ab-c98a873527d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "8ad6c614-1a36-41ac-89d4-f6759de486f7", "created_at": "2025-03-28T10:18:03.209568+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/8ad6c614-1a36-41ac-89d4-f6759de486f7", "rel": "self"}, {"href": "http://localhost/allocations/8ad6c614-1a36-41ac-89d4-f6759de486f7", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b9695018-4343-4a19-8beb-f20edb56eeca", "created_at": "2025-03-28T10:18:03.210518+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/b9695018-4343-4a19-8beb-f20edb56eeca", "rel": "self"}, {"href": "http://localhost/allocations/b9695018-4343-4a19-8beb-f20edb56eeca", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "f0b07087-8b10-4abb-ab77-4b81ee75f99d", "created_at": "2025-03-28T10:18:03.211484+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/f0b07087-8b10-4abb-ab77-4b81ee75f99d", "rel": "self"}, {"href": "http://localhost/allocations/f0b07087-8b10-4abb-ab77-4b81ee75f99d", "rel": "bookmark"}], "node_uuid": null}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.076523s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.049983s] ... 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/4041042c-5450-4cca-87b2-897507955135
Openstack-Request-Id: req-6641319b-c015-4ded-a97e-4325bdb6a8a8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4041042c-5450-4cca-87b2-897507955135", "created_at": "2025-03-28T10:18:03.237911+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/4041042c-5450-4cca-87b2-897507955135", "rel": "self"}, {"href": "http://localhost/allocations/4041042c-5450-4cca-87b2-897507955135", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/4041042c-5450-4cca-87b2-897507955135 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f08b62f1-9429-4392-8c28-6c1c92a8aec3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4041042c-5450-4cca-87b2-897507955135", "created_at": "2025-03-28T10:18:03.237911+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/4041042c-5450-4cca-87b2-897507955135", "rel": "self"}, {"href": "http://localhost/allocations/4041042c-5450-4cca-87b2-897507955135", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.041691s] ... 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-eb023372-119a-4e5b-b121-2b5bb1917cc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9ed804d9-295d-4e1d-bb44-999271e7b990", "created_at": "2025-03-28T10:18:03.254216+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/9ed804d9-295d-4e1d-bb44-999271e7b990", "rel": "self"}, {"href": "http://localhost/allocations/9ed804d9-295d-4e1d-bb44-999271e7b990", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.025786s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '378ccc4e-0160-4607-b277-897e14d110d6', '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\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.099398s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b260e63e-b0ad-482e-beee-16fbfa6af6c7', '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-293faf98-a152-47f0-8de9-80df4e7a0ff2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_firmware_components [0.076333s] ... 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-481749b6-303d-4c6d-af39-2e116e9b241f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.86
{"firmware": [{"created_at": "2025-03-28T10:18:03.283056+00:00", "updated_at": null, "component": "BIOS", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}, {"created_at": "2025-03-28T10:18:03.281525+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.038087s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/41595354-6823-4195-8811-7b71cd73798d WITH {} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.057292s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '595f1e2d-60db-405c-9e2f-97f1568e7ea0', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-35f8cff9-b897-4b87-9e5a-efb13d549f76
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.031786s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.056588s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '4ba9a566-5e40-46a8-9a96-303c5308d30f', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d7b145a7-c246-4323-afa2-fa14f8becfd3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.063106s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.036988s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': 'bfeac8dc-d5ba-45ec-9d12-e1502b7c0c80', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9df21567-8062-4cfb-bd93-544450527db1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'FOO_BAR' is not valid under any of the given schemas. Possible root cause: 'FOO_BAR' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.044105s] ... 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-3a5cf634-f93e-4993-97d5-9db503e98a7c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"extra": {}, "name": null, "links": [{"href": "http://localhost/v1/allocations/f4e6f0c0-949d-4338-bacc-d3945c911fcd", "rel": "self"}, {"href": "http://localhost/allocations/f4e6f0c0-949d-4338-bacc-d3945c911fcd", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.052877s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'e716f3ea-efc3-4fc1-8ebd-46cad89d5b3e', '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/e716f3ea-efc3-4fc1-8ebd-46cad89d5b3e
Openstack-Request-Id: req-bd15596d-90c8-45c8-8ea5-378c177f90da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e716f3ea-efc3-4fc1-8ebd-46cad89d5b3e", "created_at": "2025-03-28T10:18:03.402490+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e716f3ea-efc3-4fc1-8ebd-46cad89d5b3e", "rel": "self"}, {"href": "http://localhost/deploy_templates/e716f3ea-efc3-4fc1-8ebd-46cad89d5b3e", "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.044016s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '18250c70-d610-4d79-9c34-1990246f8e64', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3555e85b-74e3-47ba-a812-31057e0b86f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.045482s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d15e67e6-f8fd-4c6a-8198-a1943fe0d6f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "6877556c-462f-4571-a947-e742a1809beb", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/6877556c-462f-4571-a947-e742a1809beb", "rel": "self"}, {"href": "http://localhost/allocations/6877556c-462f-4571-a947-e742a1809beb", "rel": "bookmark"}]}, {"uuid": "6e51b000-f8fa-4cd7-9cb5-52c13eb39620", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/6e51b000-f8fa-4cd7-9cb5-52c13eb39620", "rel": "self"}, {"href": "http://localhost/allocations/6e51b000-f8fa-4cd7-9cb5-52c13eb39620", "rel": "bookmark"}]}, {"uuid": "b84017c7-bd92-4fc8-afdb-921bc98bb86a", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/b84017c7-bd92-4fc8-afdb-921bc98bb86a", "rel": "self"}, {"href": "http://localhost/allocations/b84017c7-bd92-4fc8-afdb-921bc98bb86a", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history [0.067210s] ... 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-92d16bed-2c99-4464-ac68-27f0a3069383
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": []}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.044107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': 'a485ee39-82bd-47b1-ba35-546f4f2b98dc', '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-29fb81f4-236f-4a24-8c5c-e4a7acd89dd7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_name_ok [0.046123s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': '0320c765-e59c-4878-9197-7a9102d5c0c1', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/0320c765-e59c-4878-9197-7a9102d5c0c1
Openstack-Request-Id: req-fae52bda-dea1-415a-9be4-08cc525dda46
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "0320c765-e59c-4878-9197-7a9102d5c0c1", "created_at": "2025-03-28T10:18:03.446995+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/0320c765-e59c-4878-9197-7a9102d5c0c1", "rel": "self"}, {"href": "http://localhost/allocations/0320c765-e59c-4878-9197-7a9102d5c0c1", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/0320c765-e59c-4878-9197-7a9102d5c0c1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8e471f63-aead-45ef-8f2d-a3195c4c34cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "0320c765-e59c-4878-9197-7a9102d5c0c1", "created_at": "2025-03-28T10:18:03.446995+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/0320c765-e59c-4878-9197-7a9102d5c0c1", "rel": "self"}, {"href": "http://localhost/allocations/0320c765-e59c-4878-9197-7a9102d5c0c1", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.056831s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-60d44644-dc90-40da-bfca-37ba64b8e493
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"links": [{"href": "http://localhost/v1/allocations/191a0c1f-75c4-4d54-8606-17f124fd850b", "rel": "self"}, {"href": "http://localhost/allocations/191a0c1f-75c4-4d54-8606-17f124fd850b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/fa5db141-433c-48b3-a81c-14e6ffd96913", "rel": "self"}, {"href": "http://localhost/allocations/fa5db141-433c-48b3-a81c-14e6ffd96913", "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=fa5db141-433c-48b3-a81c-14e6ffd96913"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.038259s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '7068edb0-c707-4b01-9591-19ac62b73dde', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-942b1672-146c-4feb-a616-8e86dfda0c88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.056370s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'daba414d-a4ae-481b-bc88-50dddcdff45d', '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-eea7c8a0-9e72-4417-a075-47709ddc7e96
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.032193s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'uuid': '2473701c-6272-464a-b7de-045700af8d7b', '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-16b5ae4d-f564-4232-bd58-2d6bef685f9c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail [0.102435s] ... 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-7ca2c4b0-037d-4736-b10b-6a03617f5734
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "9a88c836-01f6-4b85-afc7-43697d327fd1", "created_at": "2025-03-28T10:18:03.499944+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/9a88c836-01f6-4b85-afc7-43697d327fd1", "rel": "self"}]}, {"uuid": "eea871e7-ef98-46a5-8631-e9998def39a5", "created_at": "2025-03-28T10:18:03.523186+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/eea871e7-ef98-46a5-8631-e9998def39a5", "rel": "self"}]}, {"uuid": "f616dae5-78d2-478f-81f5-51c9d86c4b61", "created_at": "2025-03-28T10:18:03.524230+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/f616dae5-78d2-478f-81f5-51c9d86c4b61", "rel": "self"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner [0.042888s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4', 'owner': '12345'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4
Openstack-Request-Id: req-d48c5632-d179-433b-8fe0-0741e1c58687
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4", "created_at": "2025-03-28T10:18:03.533969+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/eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4", "rel": "self"}, {"href": "http://localhost/allocations/eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0e0c523c-68ab-4e1d-bc48-afa9b59ef83f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4", "created_at": "2025-03-28T10:18:03.533969+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/eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4", "rel": "self"}, {"href": "http://localhost/allocations/eb9e8840-ff1f-47c4-a338-c68d4bb4a0e4", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.076642s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/0d971ec2-a98f-4840-aaef-aaeb5fd182b9?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bfdbabaf-30d5-4e98-ad9f-7c3db55139f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.044435s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'dbb15a47-f508-4786-9584-74dec71bd984', 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c3febad4-3a44-4e02-b148-5517176d9e06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled [0.044833s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '5dfd8e20-5766-4dd4-96ed-32a300ab7b09', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/5dfd8e20-5766-4dd4-96ed-32a300ab7b09
Openstack-Request-Id: req-593a8239-8abe-4127-9078-44b98d0957d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5dfd8e20-5766-4dd4-96ed-32a300ab7b09", "created_at": "2025-03-28T10:18:03.580122+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/5dfd8e20-5766-4dd4-96ed-32a300ab7b09", "rel": "self"}, {"href": "http://localhost/allocations/5dfd8e20-5766-4dd4-96ed-32a300ab7b09", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/5dfd8e20-5766-4dd4-96ed-32a300ab7b09 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-10e6f18d-e643-4137-af6b-ea4eaed8237d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5dfd8e20-5766-4dd4-96ed-32a300ab7b09", "created_at": "2025-03-28T10:18:03.580122+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/5dfd8e20-5766-4dd4-96ed-32a300ab7b09", "rel": "self"}, {"href": "http://localhost/allocations/5dfd8e20-5766-4dd4-96ed-32a300ab7b09", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.036016s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'f42f7313-f7f0-4be3-a361-71542ab78b6f', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-024ab224-3a19-4c1b-a6ab-7422df5854b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed [0.036051s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f45285c8-4436-40b3-ba71-a9b4308037cf', 'owner': '12345'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-3a80aa6e-802b-422d-8c1a-db10969eb98e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.098841s] ... 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-16c487b1-6f51-4974-9145-77365cdbac31
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "58c34c18-f11a-4eab-a741-43906b6aca33", "created_at": "2025-03-28T10:18:03.608444+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/58c34c18-f11a-4eab-a741-43906b6aca33", "rel": "self"}]}, {"uuid": "3c7bd3ce-9189-4b07-81fe-ae86df56696a", "created_at": "2025-03-28T10:18:03.609342+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3c7bd3ce-9189-4b07-81fe-ae86df56696a", "rel": "self"}]}, {"uuid": "d8f3bae2-3b18-4f89-8210-66f46282bd3b", "created_at": "2025-03-28T10:18:03.613218+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d8f3bae2-3b18-4f89-8210-66f46282bd3b", "rel": "self"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.075762s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/92580818-9c53-44a4-8afa-003611da7931 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bfcf2bf9-7681-4937-abe2-bbadb15bf156
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "92580818-9c53-44a4-8afa-003611da7931", "created_at": "2025-03-28T10:18:03.631002+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/92580818-9c53-44a4-8afa-003611da7931", "rel": "self"}, {"href": "http://localhost/allocations/92580818-9c53-44a4-8afa-003611da7931", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.036913s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b26b1df5-0ce6-4b91-be56-bf179eba2902', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-42361107-db0d-4044-a0be-325e871945e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.037387s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0fec38e6-bb3c-4f05-a132-c59976555601', 'owner': '12345'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8426fc8a-e730-4bd7-b77b-e3087f045e74
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with an owner Project ID value 12345 not matching the requester Project ID 0987. Policy baremetal:allocation:create_restricted is required for this capability.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.034169s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'aebaec59-e94c-4277-9061-d9c800b41180', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f384870b-db97-4b72-afd3-9bf35a017cd6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_resource_class_too_long [0.033407s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': 'bca11250-c540-484a-8d3c-b441e9ed4c56', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-66216b4d-cfa4-486a-a27e-fb3c00c979ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.060929s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/31c9396b-f16a-45fb-adc2-a550ee9f0fb8?fields=resource_class,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c555b867-5df6-4d40-8180-5b865927e2eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"extra": {}, "resource_class": "baremetal", "links": [{"href": "http://localhost/v1/allocations/31c9396b-f16a-45fb-adc2-a550ee9f0fb8", "rel": "self"}, {"href": "http://localhost/allocations/31c9396b-f16a-45fb-adc2-a550ee9f0fb8", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.080448s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.036133s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'cf75bc76-a374-453a-b9b3-4046e73e2eb3', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-58fbd74e-102e-499c-84dc-ca94fdf07afd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.031002s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/a3f42f81-97e2-4b09-b347-0b2842ce8297 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.037385s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': 'd7cea667-9bfa-428a-a650-e862d3368d59', '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/d7cea667-9bfa-428a-a650-e862d3368d59
Openstack-Request-Id: req-370d2d91-0d5e-4764-ab3d-cdb03d71a95f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d7cea667-9bfa-428a-a650-e862d3368d59", "created_at": "2025-03-28T10:18:03.765252+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d7cea667-9bfa-428a-a650-e862d3368d59", "rel": "self"}, {"href": "http://localhost/deploy_templates/d7cea667-9bfa-428a-a650-e862d3368d59", "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_valid_extra [0.076349s] ... 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': '2d5465c6-3547-4e40-b5be-8ce3413740ae', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/2d5465c6-3547-4e40-b5be-8ce3413740ae
Openstack-Request-Id: req-40c75065-b9fe-496e-96b3-5a261a32830c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2d5465c6-3547-4e40-b5be-8ce3413740ae", "created_at": "2025-03-28T10:18:03.755926+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/2d5465c6-3547-4e40-b5be-8ce3413740ae", "rel": "self"}, {"href": "http://localhost/allocations/2d5465c6-3547-4e40-b5be-8ce3413740ae", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/2d5465c6-3547-4e40-b5be-8ce3413740ae WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58e36381-f77e-41bb-a4f0-51f8c7f250e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2d5465c6-3547-4e40-b5be-8ce3413740ae", "created_at": "2025-03-28T10:18:03.755926+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/2d5465c6-3547-4e40-b5be-8ce3413740ae", "rel": "self"}, {"href": "http://localhost/allocations/2d5465c6-3547-4e40-b5be-8ce3413740ae", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.031132s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ba!na!na! WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.039750s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '05b5bd8d-5a20-4076-870c-8abf08640377', '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/05b5bd8d-5a20-4076-870c-8abf08640377
Openstack-Request-Id: req-475e1f4c-6f5f-4540-a69d-decf25318155
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "05b5bd8d-5a20-4076-870c-8abf08640377", "created_at": "2025-03-28T10:18:03.805232+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/05b5bd8d-5a20-4076-870c-8abf08640377", "rel": "self"}, {"href": "http://localhost/deploy_templates/05b5bd8d-5a20-4076-870c-8abf08640377", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.037128s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/6bf83c4d-c592-4a16-a705-8e5a4e04e712.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa2e41b2-8a21-4e73-bf32-e4f975699893
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6bf83c4d-c592-4a16-a705-8e5a4e04e712", "created_at": "2025-03-28T10:18:03.805446+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/6bf83c4d-c592-4a16-a705-8e5a4e04e712", "rel": "self"}, {"href": "http://localhost/allocations/6bf83c4d-c592-4a16-a705-8e5a4e04e712", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.038805s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/7d1c9826-bbe9-403b-b588-8b859e5fd3a7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-00b46c86-4e3e-4cbf-91b9-9e3efd42db73
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "7d1c9826-bbe9-403b-b588-8b859e5fd3a7", "created_at": "2025-03-28T10:18:03.847493+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/7d1c9826-bbe9-403b-b588-8b859e5fd3a7", "rel": "self"}, {"href": "http://localhost/allocations/7d1c9826-bbe9-403b-b588-8b859e5fd3a7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.056986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '03175a07-2d9d-4f5b-b6b5-ec829d69d199', '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-201a1e8b-5191-434e-a70e-51e35b5b860b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A deploy template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.038301s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/5af84cb2-34d1-4ec0-8fd7-435303414ad1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f793b0ba-f8ef-4ebb-8110-ad2229e92aca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5af84cb2-34d1-4ec0-8fd7-435303414ad1", "created_at": "2025-03-28T10:18:03.886754+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/5af84cb2-34d1-4ec0-8fd7-435303414ad1", "rel": "self"}, {"href": "http://localhost/allocations/5af84cb2-34d1-4ec0-8fd7-435303414ad1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.176917s] ... 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-5b3866d3-9370-4cc3-8a9d-92a7dc25734d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "ecb6d0e2-8160-440d-98a6-e336fcab8b4e", "created_at": "2025-03-28T10:18:03.793718+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/ecb6d0e2-8160-440d-98a6-e336fcab8b4e", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&fields=uuid,created_at,severity,event&limit=1&marker=ecb6d0e2-8160-440d-98a6-e336fcab8b4e"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=ecb6d0e2-8160-440d-98a6-e336fcab8b4e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb2b4300-227b-4d1f-8b1a-79cceddcaff0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "daaa673e-293b-4a1a-8f12-472a1ea6986f", "created_at": "2025-03-28T10:18:03.796725+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/daaa673e-293b-4a1a-8f12-472a1ea6986f", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-03-28T10:18:03Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=ecb6d0e2-8160-440d-98a6-e336fcab8b4e)&fields=uuid,created_at,severity,event&limit=1&marker=daaa673e-293b-4a1a-8f12-472a1ea6986f"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=daaa673e-293b-4a1a-8f12-472a1ea6986f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-80ce349e-bf49-4cbe-a9a5-87ec6f75ec9c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "f80ffdd6-5f0a-4973-b5b3-9d8ad853dfe5", "created_at": "2025-03-28T10:18:03.798617+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f80ffdd6-5f0a-4973-b5b3-9d8ad853dfe5", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-03-28T10:18:03Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=daaa673e-293b-4a1a-8f12-472a1ea6986f)&fields=uuid,created_at,severity,event&limit=1&marker=f80ffdd6-5f0a-4973-b5b3-9d8ad853dfe5"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.153317s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['node-1', 'd6a666cb-ab3c-439f-b796-3d1cf0611cf2'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ba2038ba-f81b-479f-9932-8b2db3555d76', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/ba2038ba-f81b-479f-9932-8b2db3555d76
Openstack-Request-Id: req-6e16025d-63a3-4a94-bd91-7477d7df35bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ba2038ba-f81b-479f-9932-8b2db3555d76", "created_at": "2025-03-28T10:18:03.904495+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "d6a666cb-ab3c-439f-b796-3d1cf0611cf2"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/ba2038ba-f81b-479f-9932-8b2db3555d76", "rel": "self"}, {"href": "http://localhost/allocations/ba2038ba-f81b-479f-9932-8b2db3555d76", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/ba2038ba-f81b-479f-9932-8b2db3555d76 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bebc46e0-b4fd-41dd-b8c7-35ea7e52e475
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ba2038ba-f81b-479f-9932-8b2db3555d76", "created_at": "2025-03-28T10:18:03.904495+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "d6a666cb-ab3c-439f-b796-3d1cf0611cf2"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/ba2038ba-f81b-479f-9932-8b2db3555d76", "rel": "self"}, {"href": "http://localhost/allocations/ba2038ba-f81b-479f-9932-8b2db3555d76", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field [0.061007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/aebcb53c-3b21-4dde-a674-67a9b955513b?fields=owner WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6ebe070d-c261-4103-9864-50f38b4c2458
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"owner": "12345", "links": [{"href": "http://localhost/v1/allocations/aebcb53c-3b21-4dde-a674-67a9b955513b", "rel": "self"}, {"href": "http://localhost/allocations/aebcb53c-3b21-4dde-a674-67a9b955513b", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item [0.088945s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4f2fceaa-6277-42a0-b511-11dc1a8ecc69 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c864407a-11cc-4567-bd78-347ecc2b5799
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"uuid": "4f2fceaa-6277-42a0-b511-11dc1a8ecc69", "created_at": "2025-03-28T10:18:03.979219+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/4f2fceaa-6277-42a0-b511-11dc1a8ecc69", "rel": "self"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.075398s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '79cd6230-ac36-4cdb-9e91-d5de556136db', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/79cd6230-ac36-4cdb-9e91-d5de556136db
Openstack-Request-Id: req-5c76290d-5977-4d80-aaca-ac1de1cea1aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "79cd6230-ac36-4cdb-9e91-d5de556136db", "created_at": "2025-03-28T10:18:03.999090+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/79cd6230-ac36-4cdb-9e91-d5de556136db", "rel": "self"}, {"href": "http://localhost/allocations/79cd6230-ac36-4cdb-9e91-d5de556136db", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.141325s] ... 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-8392f034-7444-43ea-ab93-9689e82f237d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-03-28T10:18:03.971693+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_allocation.TestPost.test_create_allocation_with_traits [0.037794s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '92769a5e-356c-43fb-be40-c6fff48f2189', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/92769a5e-356c-43fb-be40-c6fff48f2189
Openstack-Request-Id: req-53e6f0b5-f938-41b6-9ea0-a9b21b4be8fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "92769a5e-356c-43fb-be40-c6fff48f2189", "created_at": "2025-03-28T10:18:04.037726+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/92769a5e-356c-43fb-be40-c6fff48f2189", "rel": "self"}, {"href": "http://localhost/allocations/92769a5e-356c-43fb-be40-c6fff48f2189", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/92769a5e-356c-43fb-be40-c6fff48f2189 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1edea51e-7200-4789-86e6-d46f566263c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "92769a5e-356c-43fb-be40-c6fff48f2189", "created_at": "2025-03-28T10:18:04.037726+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/92769a5e-356c-43fb-be40-c6fff48f2189", "rel": "self"}, {"href": "http://localhost/allocations/92769a5e-356c-43fb-be40-c6fff48f2189", "rel": "bookmark"}], "node_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.025868s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '7d5231e4-5053-423d-8d4e-1136e8818e0b', 'owner': None} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.111576s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/b300d186-6d38-4db8-a259-03eec798fb90 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9af00013-9a51-4fbd-93db-49eb2822baa8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b300d186-6d38-4db8-a259-03eec798fb90", "created_at": "2025-03-28T10:18:04.026760+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/b300d186-6d38-4db8-a259-03eec798fb90", "rel": "self"}, {"href": "http://localhost/allocations/b300d186-6d38-4db8-a259-03eec798fb90", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/b300d186-6d38-4db8-a259-03eec798fb90 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3b44cb79-9067-487a-bcf7-b3f1e3a723f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b300d186-6d38-4db8-a259-03eec798fb90", "created_at": "2025-03-28T10:18:04.026760+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/b300d186-6d38-4db8-a259-03eec798fb90", "rel": "self"}, {"href": "http://localhost/allocations/b300d186-6d38-4db8-a259-03eec798fb90", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /allocations/b300d186-6d38-4db8-a259-03eec798fb90 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3469d4ca-90c4-4429-9507-bb3a359df4b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b300d186-6d38-4db8-a259-03eec798fb90", "created_at": "2025-03-28T10:18:04.026760+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/b300d186-6d38-4db8-a259-03eec798fb90", "rel": "self"}, {"href": "http://localhost/allocations/b300d186-6d38-4db8-a259-03eec798fb90", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found [0.071246s] ... 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-7dc54930-d661-4f95-b111-72601ee7de37
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node_uuid_not_allowed [0.032626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9832156b-2eb7-43b6-b8db-11be9f0a2c09', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1efe05a9-32ec-4d61-9eb1-49358528057b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version [0.042592s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.037176s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '433ae5b9-8f03-4682-ac8b-4fed7a78762d', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/433ae5b9-8f03-4682-ac8b-4fed7a78762d
Openstack-Request-Id: req-a710992e-be65-4445-a7a5-42e825868463
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "433ae5b9-8f03-4682-ac8b-4fed7a78762d", "created_at": "2025-03-28T10:18:04.134172+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/433ae5b9-8f03-4682-ac8b-4fed7a78762d", "rel": "self"}, {"href": "http://localhost/allocations/433ae5b9-8f03-4682-ac8b-4fed7a78762d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/433ae5b9-8f03-4682-ac8b-4fed7a78762d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e36a733b-364a-4f85-84b3-6a28579c2ace
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "433ae5b9-8f03-4682-ac8b-4fed7a78762d", "created_at": "2025-03-28T10:18:04.134172+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/433ae5b9-8f03-4682-ac8b-4fed7a78762d", "rel": "self"}, {"href": "http://localhost/allocations/433ae5b9-8f03-4682-ac8b-4fed7a78762d", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.076307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07176165-1df1-4545-a2a7-5014306174f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "ecf034d5-ba3f-454b-a114-068b25346e4e", "created_at": "2025-03-28T10:18:04.116118+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/ecf034d5-ba3f-454b-a114-068b25346e4e", "rel": "self"}, {"href": "http://localhost/allocations/ecf034d5-ba3f-454b-a114-068b25346e4e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b803670f-5b05-4c8e-b678-edc40854f5d4", "created_at": "2025-03-28T10:18:04.117092+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/b803670f-5b05-4c8e-b678-edc40854f5d4", "rel": "self"}, {"href": "http://localhost/allocations/b803670f-5b05-4c8e-b678-edc40854f5d4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "03ab87f5-237c-4a9a-a952-dcb2369f427b", "created_at": "2025-03-28T10:18:04.118310+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/03ab87f5-237c-4a9a-a952-dcb2369f427b", "rel": "self"}, {"href": "http://localhost/allocations/03ab87f5-237c-4a9a-a952-dcb2369f427b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c1a6842e-b6a1-490b-8cf2-d8a5860f0e22", "created_at": "2025-03-28T10:18:04.119208+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/c1a6842e-b6a1-490b-8cf2-d8a5860f0e22", "rel": "self"}, {"href": "http://localhost/allocations/c1a6842e-b6a1-490b-8cf2-d8a5860f0e22", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a965d0cf-d7b3-4f9b-a769-647048382fd9", "created_at": "2025-03-28T10:18:04.128235+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/a965d0cf-d7b3-4f9b-a769-647048382fd9", "rel": "self"}, {"href": "http://localhost/allocations/a965d0cf-d7b3-4f9b-a769-647048382fd9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden [0.030905s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '04131468-dd6b-4d08-8076-184faaca620d', 'owner': None} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fded9caa-8f63-4885-b198-ce81d392546b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_abort_cleanhold [0.058873s] ... 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-744eddfc-eb6b-403a-804c-0fda19caf037
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.053972s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-70754ddf-b7bc-48d0-ae72-75fe5268e9c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "6038f1bb-6436-4716-ae2c-a7039f43265d", "created_at": "2025-03-28T10:18:04.196063+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/6038f1bb-6436-4716-ae2c-a7039f43265d", "rel": "self"}, {"href": "http://localhost/allocations/6038f1bb-6436-4716-ae2c-a7039f43265d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal [0.036398s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1ce9dd36-2a57-4f95-b165-902ee42f378c', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/1ce9dd36-2a57-4f95-b165-902ee42f378c
Openstack-Request-Id: req-eca754d0-a464-4830-84a7-cbdafa3b0fcd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1ce9dd36-2a57-4f95-b165-902ee42f378c", "created_at": "2025-03-28T10:18:04.202564+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/1ce9dd36-2a57-4f95-b165-902ee42f378c", "rel": "self"}, {"href": "http://localhost/allocations/1ce9dd36-2a57-4f95-b165-902ee42f378c", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/1ce9dd36-2a57-4f95-b165-902ee42f378c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f9ff01c6-2f6b-4357-b60c-1dc948a3f9a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1ce9dd36-2a57-4f95-b165-902ee42f378c", "created_at": "2025-03-28T10:18:04.202564+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/1ce9dd36-2a57-4f95-b165-902ee42f378c", "rel": "self"}, {"href": "http://localhost/allocations/1ce9dd36-2a57-4f95-b165-902ee42f378c", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.232129s] ... 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-7bd42f8c-1bed-42b6-8077-55684654f428
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-03-28T10:18:04.228145+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_allocation.TestPost.test_create_restricted_allocation_older_version [0.037744s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '294f4f7f-2324-455f-9897-e00c7e1010a9'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/294f4f7f-2324-455f-9897-e00c7e1010a9
Openstack-Request-Id: req-be208e33-6ff6-4675-8fec-5e8db58fe3f0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "294f4f7f-2324-455f-9897-e00c7e1010a9", "created_at": "2025-03-28T10:18:04.239352+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/294f4f7f-2324-455f-9897-e00c7e1010a9", "rel": "self"}, {"href": "http://localhost/allocations/294f4f7f-2324-455f-9897-e00c7e1010a9", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/294f4f7f-2324-455f-9897-e00c7e1010a9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bebe2f56-16a2-4a05-a67f-4979719396ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "294f4f7f-2324-455f-9897-e00c7e1010a9", "created_at": "2025-03-28T10:18:04.239352+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/294f4f7f-2324-455f-9897-e00c7e1010a9", "rel": "self"}, {"href": "http://localhost/allocations/294f4f7f-2324-455f-9897-e00c7e1010a9", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.045301s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-74c84b9a-e503-4833-97ca-75def92fb84a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "04933659-e98f-4ca5-acd7-e130c1ff9460", "created_at": "2025-03-28T10:18:04.233660+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/04933659-e98f-4ca5-acd7-e130c1ff9460", "rel": "self"}, {"href": "http://localhost/allocations/04933659-e98f-4ca5-acd7-e130c1ff9460", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "16fc1ba2-f415-4e86-9188-36989c047c41", "created_at": "2025-03-28T10:18:04.234671+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/16fc1ba2-f415-4e86-9188-36989c047c41", "rel": "self"}, {"href": "http://localhost/allocations/16fc1ba2-f415-4e86-9188-36989c047c41", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3b0e2508-8ba8-4eb2-911e-80a12b5bfaff", "created_at": "2025-03-28T10:18:04.235618+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/3b0e2508-8ba8-4eb2-911e-80a12b5bfaff", "rel": "self"}, {"href": "http://localhost/allocations/3b0e2508-8ba8-4eb2-911e-80a12b5bfaff", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner [0.031556s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8e72cc6f-53af-4b95-8fee-5e50fb172db2', 'owner': '54321'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f76ed91e-eaf1-472b-a7f3-1411b60736d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.042068s] ... 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-e7e54f4f-a5a6-4fd7-966f-efb99d1e1ad8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.036386s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-29561e13-ff03-4f82-9cb1-543342f1b596
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "e7a02da4-7c9c-4c3a-ad20-748aae7af353", "created_at": "2025-03-28T10:18:04.280661+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/e7a02da4-7c9c-4c3a-ad20-748aae7af353", "rel": "self"}, {"href": "http://localhost/allocations/e7a02da4-7c9c-4c3a-ad20-748aae7af353", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "c13205d6-b367-45a2-97b3-c88fc047cd0c", "created_at": "2025-03-28T10:18:04.279696+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/c13205d6-b367-45a2-97b3-c88fc047cd0c", "rel": "self"}, {"href": "http://localhost/allocations/c13205d6-b367-45a2-97b3-c88fc047cd0c", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "43102cb4-d322-4b1b-8fbb-8252e514a30a", "created_at": "2025-03-28T10:18:04.278693+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/43102cb4-d322-4b1b-8fbb-8252e514a30a", "rel": "self"}, {"href": "http://localhost/allocations/43102cb4-d322-4b1b-8fbb-8252e514a30a", "rel": "bookmark"}], "node_uuid": null}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.096155s] ... 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-39c46879-5919-4b52-b6e8-a441c02c3ec8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.13
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner [0.048309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ef5a15f8-6199-4cbf-840c-fdfa0ba44645', 'owner': '12345'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/ef5a15f8-6199-4cbf-840c-fdfa0ba44645
Openstack-Request-Id: req-9dc201e3-9327-45d9-8119-5925ce229462
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "ef5a15f8-6199-4cbf-840c-fdfa0ba44645", "created_at": "2025-03-28T10:18:04.320931+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/ef5a15f8-6199-4cbf-840c-fdfa0ba44645", "rel": "self"}, {"href": "http://localhost/allocations/ef5a15f8-6199-4cbf-840c-fdfa0ba44645", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/ef5a15f8-6199-4cbf-840c-fdfa0ba44645 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9e03b4b-ed6b-42e7-94ba-125ff4613d50
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "ef5a15f8-6199-4cbf-840c-fdfa0ba44645", "created_at": "2025-03-28T10:18:04.320931+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/ef5a15f8-6199-4cbf-840c-fdfa0ba44645", "rel": "self"}, {"href": "http://localhost/allocations/ef5a15f8-6199-4cbf-840c-fdfa0ba44645", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.049138s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.065381s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0afa71b6-585e-44e6-9fa3-0b03a5027c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-9e114c24-143e-4fa4-b0bb-c3649525fa26
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-360d7e82-25a9-4838-929b-e16bd2a95f19
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-4da3981a-b4ba-4aee-aaf8-3189ef81782f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.042153s] ... 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-e7dd2ce8-00d4-4273-99eb-6d7a2de54281
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-03-28T10:18:04.364404+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_deployhold [0.107037s] ... 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-49510a95-2ea9-4bf0-9a0e-4e5e814021b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.062490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c0fa4f5c-2e1b-4b7a-92e0-19cc5d637a03
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "271dd2d8-b107-4345-8f4d-cfa285166963", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/271dd2d8-b107-4345-8f4d-cfa285166963", "rel": "self"}, {"href": "http://localhost/chassis/271dd2d8-b107-4345-8f4d-cfa285166963", "rel": "bookmark"}]}, {"uuid": "14a68840-4c49-4c34-9ebb-5a9a433918a4", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/14a68840-4c49-4c34-9ebb-5a9a433918a4", "rel": "self"}, {"href": "http://localhost/chassis/14a68840-4c49-4c34-9ebb-5a9a433918a4", "rel": "bookmark"}]}, {"uuid": "b2a768d7-7634-435c-93a0-eb2b29ac0f03", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b2a768d7-7634-435c-93a0-eb2b29ac0f03", "rel": "self"}, {"href": "http://localhost/chassis/b2a768d7-7634-435c-93a0-eb2b29ac0f03", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=b2a768d7-7634-435c-93a0-eb2b29ac0f03"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields [0.048888s] ... 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-0ca0916e-0521-41c6-bb35-132757fdafbf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid detail: Unrecognized value 'True?fields=name,read_only', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.108900s] ... 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-2ceaafab-9d7e-45b1-a00a-dc803b4dfda5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields [0.086966s] ... 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-0bc49373-54c5-44a9-8c1b-49ed5f347ed7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-03-28T10:18:04.481718+00:00", "updated_at": null, "name": "virtualization", "read_only": false, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.233549s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/abdb007d-c53f-4bf4-9d51-c57e8e81c1e6 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-9d19fa7a-2b14-417b-9f9b-9afeb5155f0f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "abdb007d-c53f-4bf4-9d51-c57e8e81c1e6", "created_at": "2025-03-28T10:18:04.351475+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/abdb007d-c53f-4bf4-9d51-c57e8e81c1e6", "rel": "self"}, {"href": "http://localhost/deploy_templates/abdb007d-c53f-4bf4-9d51-c57e8e81c1e6", "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_deploy_template.TestPatch.test_add_root_non_existent [0.030013s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d0d932ca-0a12-4180-8a78-70450df12560 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-848e9749-7bc4-4b19-8a56-bc97c55b9138
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestBIOS.test_get_bios_fields_old_version [0.085205s] ... 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-f013ab79-0eaf-4c46-be35-2db9c17a68cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?fields=['name', 'read_only'] received.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.108160s] ... 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-a85e91c8-7f72-4583-b6ea-9a9109ef96a4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.032770s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/1e1761f2-8d59-4de8-a4ab-d100235f448e 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-d1be15b3-66c7-4c5f-bfab-aa7d00dbd6cf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.223441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-abb1f401-765e-4055-b2ee-94ff833befae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "09767e87-7b5b-47e2-b529-bfb6ec92739c", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/09767e87-7b5b-47e2-b529-bfb6ec92739c", "rel": "self"}, {"href": "http://localhost/chassis/09767e87-7b5b-47e2-b529-bfb6ec92739c", "rel": "bookmark"}]}, {"uuid": "3d091d8a-47c5-44dc-b098-184ff9af6da7", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/3d091d8a-47c5-44dc-b098-184ff9af6da7", "rel": "self"}, {"href": "http://localhost/chassis/3d091d8a-47c5-44dc-b098-184ff9af6da7", "rel": "bookmark"}]}, {"uuid": "b5c7e79f-0e48-4d91-87f7-1efd4902879f", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b5c7e79f-0e48-4d91-87f7-1efd4902879f", "rel": "self"}, {"href": "http://localhost/chassis/b5c7e79f-0e48-4d91-87f7-1efd4902879f", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=b5c7e79f-0e48-4d91-87f7-1efd4902879f"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.031351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/3e9afca1-fc2b-4a22-8ee2-d66583905c3e WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4245e2ce-a869-4507-88f7-8f8c64469248
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestBIOS.test_get_one_bios [0.075360s] ... 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-82f75a72-7fc9-40f1-a6fd-d763806b7d48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"virtualization": {"created_at": "2025-03-28T10:18:04.656192+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.051010s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/e0afe5dc-f6e3-4920-a758-8a65ba2c2516 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a95d01e0-e4c9-4ad7-8f20-7554beb6d8d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e0afe5dc-f6e3-4920-a758-8a65ba2c2516", "created_at": "2025-03-28T10:18:04.683547+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e0afe5dc-f6e3-4920-a758-8a65ba2c2516", "rel": "self"}, {"href": "http://localhost/deploy_templates/e0afe5dc-f6e3-4920-a758-8a65ba2c2516", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.043488s] ... 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-83c7c4a1-cf87-4ec2-b786-4d1de2209111
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.106212s] ... 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-cab28bd9-bca2-408c-b633-d16a8d87cd1f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.086215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d77483e9-f813-4234-a6b6-47917fedeecf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "ff0d0bcd-0be1-49ea-9dc1-97fef6379b05", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/ff0d0bcd-0be1-49ea-9dc1-97fef6379b05", "rel": "self"}, {"href": "http://localhost/chassis/ff0d0bcd-0be1-49ea-9dc1-97fef6379b05", "rel": "bookmark"}]}, {"uuid": "ed0a3017-05b9-46e3-be9b-39554038675e", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/ed0a3017-05b9-46e3-be9b-39554038675e", "rel": "self"}, {"href": "http://localhost/chassis/ed0a3017-05b9-46e3-be9b-39554038675e", "rel": "bookmark"}]}, {"uuid": "288f9fe1-4875-47cd-a4f8-dcc2851dc52b", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/288f9fe1-4875-47cd-a4f8-dcc2851dc52b", "rel": "self"}, {"href": "http://localhost/chassis/288f9fe1-4875-47cd-a4f8-dcc2851dc52b", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=288f9fe1-4875-47cd-a4f8-dcc2851dc52b"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.039900s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.052609s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/c1b2a0ff-d809-45ea-a051-81ed5c2dd685 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-22e329cb-23a8-4e64-b5e2-407ee2a8244d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.041997s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9bcc8721-95a9-418b-8731-35079c5cfa2b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:04.765185+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.027730s] ... 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-f21156fa-efe3-4241-9769-f04d3528305c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry [0.044103s] ... 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-6f4caaec-904b-443c-b64f-92dd924e07fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"virtualization": {"created_at": "2025-03-28T10:18:04.790113+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.TestPut.test_adopt_from_manage [0.095312s] ... 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-1973beb4-3a82-453c-95ae-320bfd09d732
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.029152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9057f7e8-a927-41ef-b628-eaa4740034ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:04.823009+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.066066s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d0780f92-7908-4b4c-984c-fd6a2dde3e79 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9ffa47d7-189a-472c-a6ee-1cf3ae1c097c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.048014s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-93da8adc-62c0-48d7-a12a-d7b7884d7b88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_chassis.TestListChassis.test_detail_query_false [0.031816s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a91aab02-1e40-4df1-9dd2-ee6f3e55f8f6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-c0d99bcc-e592-4889-8ddb-16da2bd9e6ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.047136s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/3d787633-8e6e-497d-96fc-2f70116ee30c WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-390f1fae-16ae-4509-b87d-9adab7e8e7cf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.034843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b07cc235-695a-42a7-ac2d-2fbb26e77d27
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.031407s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/6db9bee7-c927-45b7-b974-d8edef582527 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ed1440bb-cd04-489f-9584-41d7c71ed950
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.031566s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-93b7e85f-0fa4-47ab-b2c9-2c231b887656
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.037637s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2c5837c5-18dc-4c49-ba74-2091c8464a3c WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f5735c74-298a-4b1f-9d47-c79222e05e40
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.027986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ff5cdfee-dcd2-4ec0-8842-905e30ec3908
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_chassis.TestListChassis.test_empty [0.027176s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1b7e2619-f2f7-49f9-a70f-8fedec78262d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": []}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.038418s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d9aa970b-93d1-4c72-a441-7c83494cac1d WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b159bf30-0768-4348-9d92-04f40be8fc2c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.137666s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4347c941-c860-432f-97ce-5bf26b112fbc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "d0ac695e-2825-476f-a0a3-89b0ea49c8c7", "instance_uuid": "b4c016c1-5be2-40d3-89c1-af5bbbd4bc21", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d0ac695e-2825-476f-a0a3-89b0ea49c8c7", "rel": "self"}, {"href": "http://localhost/nodes/d0ac695e-2825-476f-a0a3-89b0ea49c8c7", "rel": "bookmark"}]}, {"uuid": "f1e641e7-2e56-4672-b325-6ca7db3e3cb7", "instance_uuid": "caecc0a8-0688-4275-902b-5551d2a9515d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f1e641e7-2e56-4672-b325-6ca7db3e3cb7", "rel": "self"}, {"href": "http://localhost/nodes/f1e641e7-2e56-4672-b325-6ca7db3e3cb7", "rel": "bookmark"}]}, {"uuid": "4c26ba79-6a7d-498e-9695-27e266d0669e", "instance_uuid": "ee2e77e5-2857-44b6-b07f-32e0486f92d4", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4c26ba79-6a7d-498e-9695-27e266d0669e", "rel": "self"}, {"href": "http://localhost/nodes/4c26ba79-6a7d-498e-9695-27e266d0669e", "rel": "bookmark"}]}, {"uuid": "e6f129de-4e77-458f-bab4-5a417e99baa9", "instance_uuid": "16426c21-3225-415a-8531-edd9749a4b34", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e6f129de-4e77-458f-bab4-5a417e99baa9", "rel": "self"}, {"href": "http://localhost/nodes/e6f129de-4e77-458f-bab4-5a417e99baa9", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f285cf9-638b-4bad-a798-ceebbefdc996
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "d0ac695e-2825-476f-a0a3-89b0ea49c8c7", "instance_uuid": "b4c016c1-5be2-40d3-89c1-af5bbbd4bc21", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d0ac695e-2825-476f-a0a3-89b0ea49c8c7", "rel": "self"}, {"href": "http://localhost/nodes/d0ac695e-2825-476f-a0a3-89b0ea49c8c7", "rel": "bookmark"}]}, {"uuid": "f1e641e7-2e56-4672-b325-6ca7db3e3cb7", "instance_uuid": "caecc0a8-0688-4275-902b-5551d2a9515d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f1e641e7-2e56-4672-b325-6ca7db3e3cb7", "rel": "self"}, {"href": "http://localhost/nodes/f1e641e7-2e56-4672-b325-6ca7db3e3cb7", "rel": "bookmark"}]}, {"uuid": "4c26ba79-6a7d-498e-9695-27e266d0669e", "instance_uuid": "ee2e77e5-2857-44b6-b07f-32e0486f92d4", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4c26ba79-6a7d-498e-9695-27e266d0669e", "rel": "self"}, {"href": "http://localhost/nodes/4c26ba79-6a7d-498e-9695-27e266d0669e", "rel": "bookmark"}]}, {"uuid": "e6f129de-4e77-458f-bab4-5a417e99baa9", "instance_uuid": "16426c21-3225-415a-8531-edd9749a4b34", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e6f129de-4e77-458f-bab4-5a417e99baa9", "rel": "self"}, {"href": "http://localhost/nodes/e6f129de-4e77-458f-bab4-5a417e99baa9", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.033098s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/0f7b5035-9ef0-4353-bc07-ac75baf41187 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6713b834-b8c5-48ce-ae91-1364a1a37dff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.050571s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-160da2ac-eb5d-41f5-b788-319c59245ae3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "533d2055-c764-4750-9046-a7a7821e19e8", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/533d2055-c764-4750-9046-a7a7821e19e8", "rel": "self"}, {"href": "http://localhost/chassis/533d2055-c764-4750-9046-a7a7821e19e8", "rel": "bookmark"}]}, {"uuid": "c0a024b8-5203-44d6-9c18-da039c944b95", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/c0a024b8-5203-44d6-9c18-da039c944b95", "rel": "self"}, {"href": "http://localhost/chassis/c0a024b8-5203-44d6-9c18-da039c944b95", "rel": "bookmark"}]}, {"uuid": "26a16136-46a3-46cc-9bd3-06bfc42ced85", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/26a16136-46a3-46cc-9bd3-06bfc42ced85", "rel": "self"}, {"href": "http://localhost/chassis/26a16136-46a3-46cc-9bd3-06bfc42ced85", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.047114s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/5aa14851-615d-4d8b-94a4-2a157c587e6c 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-ee44edbe-56ef-41e5-92c1-a29970c1e246
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A deploy template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.057177s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8b17c7d8-fe61-4124-b96c-7ffa1282c898
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"extra": {}, "links": [{"href": "http://localhost/v1/chassis/973d68ca-8942-479c-8d3d-b251cd8a64a1", "rel": "self"}, {"href": "http://localhost/chassis/973d68ca-8942-479c-8d3d-b251cd8a64a1", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/301a18a7-7c0e-40d1-86f3-8f0de6824609", "rel": "self"}, {"href": "http://localhost/chassis/301a18a7-7c0e-40d1-86f3-8f0de6824609", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=301a18a7-7c0e-40d1-86f3-8f0de6824609"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.038494s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/243946a2-d90d-4ff3-8138-8515a9226f18 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3bb261de-2a8a-4fa0-a72c-a3a80b85f729
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.122919s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-45ac8aa5-9367-4459-931b-aa8367d150e7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "cbf40849-9ce7-4279-8323-be08af62befb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/cbf40849-9ce7-4279-8323-be08af62befb", "rel": "self"}, {"href": "http://localhost/nodes/cbf40849-9ce7-4279-8323-be08af62befb", "rel": "bookmark"}]}, {"uuid": "8a87d5d1-216b-40d5-a160-8ea85d080514", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8a87d5d1-216b-40d5-a160-8ea85d080514", "rel": "self"}, {"href": "http://localhost/nodes/8a87d5d1-216b-40d5-a160-8ea85d080514", "rel": "bookmark"}]}, {"uuid": "5726ac38-d433-4e82-90bf-61f22cf6f3e0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5726ac38-d433-4e82-90bf-61f22cf6f3e0", "rel": "self"}, {"href": "http://localhost/nodes/5726ac38-d433-4e82-90bf-61f22cf6f3e0", "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=5726ac38-d433-4e82-90bf-61f22cf6f3e0"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.035946s] ... 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-5d5ef5c4-c525-4664-8929-dfc476f3c95a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.326338s] ... 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-c78dd249-1bb5-4fc1-afdb-61f60e15cf8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_deploy_template.TestPatch.test_replace_invalid_name_none [0.044094s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/32bc592f-1e51-401b-b3ec-594151615afb WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-477ecfa7-2727-45b3-8f68-727b5796815a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.032911s] ... 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-4099fffe-58e0-406b-9932-df1e73df033c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.042477s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/4b9d16ac-455b-4ec1-afb6-c3a2a5d0f254 WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bf15ca04-0515-4a89-b84f-1039acf20096
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.031751s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f7ed1965-e022-4491-9b19-8021f04728ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:05.190042+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.086293s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b4d2a922-3663-44f6-bc99-474b1cbad17d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "5dc038db-f522-406b-b01b-9e0c90766093", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/5dc038db-f522-406b-b01b-9e0c90766093", "rel": "self"}, {"href": "http://localhost/nodes/5dc038db-f522-406b-b01b-9e0c90766093", "rel": "bookmark"}]}, {"uuid": "b87c74a3-d49c-43ad-b85e-2775310a6806", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/b87c74a3-d49c-43ad-b85e-2775310a6806", "rel": "self"}, {"href": "http://localhost/nodes/b87c74a3-d49c-43ad-b85e-2775310a6806", "rel": "bookmark"}]}, {"uuid": "158ceb5b-9ef4-44ff-85ce-751e97e27a50", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/158ceb5b-9ef4-44ff-85ce-751e97e27a50", "rel": "self"}, {"href": "http://localhost/nodes/158ceb5b-9ef4-44ff-85ce-751e97e27a50", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=158ceb5b-9ef4-44ff-85ce-751e97e27a50"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.030844s] ... 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-57a7e4e0-d909-4a39-9e36-5ec37e31db78
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.045206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/db9a007e-2e4f-4a0e-941e-85676ab055e1 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-e19aaf9e-75a1-4bb0-9d75-e4635e4dfd49
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.101413s] ... 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-8b034988-bd43-4dd3-a63a-a3f0e57ec3d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-2be78635-2bc3-4132-ad54-949655de7127
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-b39b1c51-f46e-4a17-ba7d-8fea665e0972
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_collection_links_default_limit [0.051697s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a179215-b05b-4d94-b515-5991ca9e8688
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "7b956209-8375-41df-872c-78b916666ad1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7b956209-8375-41df-872c-78b916666ad1", "rel": "self"}, {"href": "http://localhost/nodes/7b956209-8375-41df-872c-78b916666ad1", "rel": "bookmark"}]}, {"uuid": "55183db7-05f8-4e3c-9f80-3285a451a6c7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/55183db7-05f8-4e3c-9f80-3285a451a6c7", "rel": "self"}, {"href": "http://localhost/nodes/55183db7-05f8-4e3c-9f80-3285a451a6c7", "rel": "bookmark"}]}, {"uuid": "0fbf7e1e-ce76-47d3-a9af-b968cb9fe015", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0fbf7e1e-ce76-47d3-a9af-b968cb9fe015", "rel": "self"}, {"href": "http://localhost/nodes/0fbf7e1e-ce76-47d3-a9af-b968cb9fe015", "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=0fbf7e1e-ce76-47d3-a9af-b968cb9fe015"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.038254s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce37c0f9-4d4d-4699-9fc9-82c07a390c59
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b8344d88-3912-4f6c-9627-9f152d0e8bf9", "created_at": "2025-03-28T10:18:05.253560+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9", "rel": "self"}, {"href": "http://localhost/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e541cdce-f4c2-4369-a5ed-695fd397416c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b8344d88-3912-4f6c-9627-9f152d0e8bf9", "created_at": "2025-03-28T10:18:05.253560+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9", "rel": "self"}, {"href": "http://localhost/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9/nodes", "rel": "bookmark"}]]}
GET /chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f2c00586-700c-49d7-9510-e8c7a0e589ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b8344d88-3912-4f6c-9627-9f152d0e8bf9", "created_at": "2025-03-28T10:18:05.253560+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9", "rel": "self"}, {"href": "http://localhost/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b8344d88-3912-4f6c-9627-9f152d0e8bf9/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.040538s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2f1dac12-887a-41a7-be16-6686b098786d 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-cb68908c-43cc-4261-a0db-20126f1ff6f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.046157s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=8b33838a-1c2e-4122-9cd7-1c41b7b4d909 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1df8c504-b316-41e0-af1c-8a8b16010e35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "fd1267f9-9dcb-4805-bbdf-f0568f6e1232", "instance_uuid": "8b33838a-1c2e-4122-9cd7-1c41b7b4d909", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fd1267f9-9dcb-4805-bbdf-f0568f6e1232", "rel": "self"}, {"href": "http://localhost/nodes/fd1267f9-9dcb-4805-bbdf-f0568f6e1232", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.039788s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-398534ed-e785-4928-bc4d-e92badc6461d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "90cda44c-bbac-4036-9a72-2f1f0e239250", "created_at": "2025-03-28T10:18:05.292448+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250", "rel": "self"}, {"href": "http://foo/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250/nodes", "rel": "self"}, {"href": "http://foo/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c021a40a-418c-45ec-95c0-2a4ad61ed612
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "90cda44c-bbac-4036-9a72-2f1f0e239250", "created_at": "2025-03-28T10:18:05.292448+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250", "rel": "self"}, {"href": "http://foo/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250/nodes", "rel": "self"}, {"href": "http://foo/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250/nodes", "rel": "bookmark"}]]}
GET /chassis/90cda44c-bbac-4036-9a72-2f1f0e239250 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dda4b56f-981b-47bb-95e1-aeaf1a38ad64
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "90cda44c-bbac-4036-9a72-2f1f0e239250", "created_at": "2025-03-28T10:18:05.292448+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250", "rel": "self"}, {"href": "http://foo/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250/nodes", "rel": "self"}, {"href": "http://foo/chassis/90cda44c-bbac-4036-9a72-2f1f0e239250/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.055835s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/9b623787-e7dd-4589-8354-3accb4e52c01 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-52362086-2e4f-48c2-933b-38004a8212ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9b623787-e7dd-4589-8354-3accb4e52c01", "created_at": "2025-03-28T10:18:05.306516+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9b623787-e7dd-4589-8354-3accb4e52c01", "rel": "self"}, {"href": "http://localhost/deploy_templates/9b623787-e7dd-4589-8354-3accb4e52c01", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 11}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.047028s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-debdcf6a-cf76-43e1-bdd6-ef4569bfb040
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:05.330555+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.099785s] ... 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-2a5c4977-3087-4a28-8f65-590b77f09fdd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-794ec7ae-9436-4481-96ca-4667ef1d32d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-acf518c4-8ff5-439b-8955-408569c30f6f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.047895s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f9a2099-9700-4002-8304-b66c070dcf54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "858c71ed-e3b1-4559-be7e-a95632846361", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/858c71ed-e3b1-4559-be7e-a95632846361", "rel": "self"}, {"href": "http://localhost/chassis/858c71ed-e3b1-4559-be7e-a95632846361", "rel": "bookmark"}]}, {"uuid": "8fa4590b-f156-4909-81b9-1f62cb611b29", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/8fa4590b-f156-4909-81b9-1f62cb611b29", "rel": "self"}, {"href": "http://localhost/chassis/8fa4590b-f156-4909-81b9-1f62cb611b29", "rel": "bookmark"}]}, {"uuid": "a378779d-8865-4f3c-9b55-a78447f15678", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/a378779d-8865-4f3c-9b55-a78447f15678", "rel": "self"}, {"href": "http://localhost/chassis/a378779d-8865-4f3c-9b55-a78447f15678", "rel": "bookmark"}]}, {"uuid": "953e3714-d281-4568-9199-397d15d4bc98", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/953e3714-d281-4568-9199-397d15d4bc98", "rel": "self"}, {"href": "http://localhost/chassis/953e3714-d281-4568-9199-397d15d4bc98", "rel": "bookmark"}]}, {"uuid": "6bfdc96c-4f97-470d-b259-4bafc1c94d3a", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/6bfdc96c-4f97-470d-b259-4bafc1c94d3a", "rel": "self"}, {"href": "http://localhost/chassis/6bfdc96c-4f97-470d-b259-4bafc1c94d3a", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.047257s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/173cb907-db66-495a-af3e-4daf3dff2923 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-e5eb3009-4009-4a09-b9bd-b46c37387e15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID 173cb907-db66-495a-af3e-4daf3dff2923 already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.042806s] ... 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-51f76297-89fd-4649-9016-f639ecc4666a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.059695s] ... 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-26472025-3013-4473-9432-69d3ff36f615
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-89e9da78-576e-45e4-8d81-b0fa6d1ad197
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-822be4cd-7d13-4ea3-9844-1ad948cf963f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.036077s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/00d06913-ae62-438e-9b4b-33ccbc27a057 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-d6fbb997-5b3a-4be7-b658-e471e0ff0eca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.065863s] ... 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-3f52fbd6-3b71-4e00-abd2-31c862035a24
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "4dc38b50-7fc9-44ec-b1ff-c64e10946ee9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4dc38b50-7fc9-44ec-b1ff-c64e10946ee9", "rel": "self"}, {"href": "http://localhost/nodes/4dc38b50-7fc9-44ec-b1ff-c64e10946ee9", "rel": "bookmark"}]}, {"uuid": "8b46079b-1891-467d-9801-866766245bda", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8b46079b-1891-467d-9801-866766245bda", "rel": "self"}, {"href": "http://localhost/nodes/8b46079b-1891-467d-9801-866766245bda", "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-f91338eb-6322-4c03-9ec1-c0ecb1269122
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "4dc38b50-7fc9-44ec-b1ff-c64e10946ee9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4dc38b50-7fc9-44ec-b1ff-c64e10946ee9", "rel": "self"}, {"href": "http://localhost/nodes/4dc38b50-7fc9-44ec-b1ff-c64e10946ee9", "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=4dc38b50-7fc9-44ec-b1ff-c64e10946ee9"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver [0.040337s] ... 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-3a5d9bbc-7117-418d-b8cb-97133dec6002
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.030423s] ... 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-7fd03e4f-2fa5-4205-adc9-97a109b49999
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_deploy_template.TestPatch.test_replace_step_invalid_interface [0.037551s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/a4be7d2e-336a-4393-a6f9-921f273002ff WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9076aabe-a0ee-4196-9e68-684ad4b3ef7b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.075025s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0b25896f-aab4-48d0-a0c9-26eed971b5fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_chassis.TestListChassis.test_nodes_subresource_link [0.031812s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-79f60d70-8075-40ac-89db-ec0500ca9f07
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:05.479055+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.053188s] ... 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-c52076ed-dbed-4885-a875-f5201c39c64b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.029837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f251e6ea-d7ba-4f7a-9ba8-d1d9677ac26c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.065448s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d70e974c-6a4c-45a3-b480-ec31a238449f WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-874b1161-0eb9-40db-89b6-fd6019152f80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d70e974c-6a4c-45a3-b480-ec31a238449f", "created_at": "2025-03-28T10:18:05.493854+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d70e974c-6a4c-45a3-b480-ec31a238449f", "rel": "self"}, {"href": "http://localhost/deploy_templates/d70e974c-6a4c-45a3-b480-ec31a238449f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request [0.043660s] ... 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-19ae8c92-1d3b-4a8a-b818-713a84240673
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid [0.079096s] ... 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-2ea3c146-3df5-4ec7-8e22-99b96d20b4e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:05.534098+00:00", "updated_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": "6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.027702s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2150ecbd-301e-4192-b070-43017f1fd061 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.040618s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c3ce64f-28df-4ac0-a16d-8f434905865f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.039998s] ... 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-0eea56e5-b329-41dd-bd32-db78a4c19106
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.039739s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-472ff275-e4e9-44f7-8cc8-83c6bff476c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "21c753e5-6204-493d-8b90-5a0364481c49", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/21c753e5-6204-493d-8b90-5a0364481c49", "rel": "self"}, {"href": "http://localhost/chassis/21c753e5-6204-493d-8b90-5a0364481c49", "rel": "bookmark"}]}, {"uuid": "62fb41e9-4767-48a7-9db4-1375f9c79c18", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/62fb41e9-4767-48a7-9db4-1375f9c79c18", "rel": "self"}, {"href": "http://localhost/chassis/62fb41e9-4767-48a7-9db4-1375f9c79c18", "rel": "bookmark"}]}, {"uuid": "b734c658-1a8d-47cf-835e-0b6404840c82", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b734c658-1a8d-47cf-835e-0b6404840c82", "rel": "self"}, {"href": "http://localhost/chassis/b734c658-1a8d-47cf-835e-0b6404840c82", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.044333s] ... 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-b0f7c71c-25f6-4ba4-9e07-b2791025a5e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "fdacdd3b-013b-421b-8817-95dc9c6861e7", "created_at": "2025-03-28T10:18:05.575161+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fdacdd3b-013b-421b-8817-95dc9c6861e7", "rel": "self"}, {"href": "http://localhost/deploy_templates/fdacdd3b-013b-421b-8817-95dc9c6861e7", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.025178s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.040115s] ... 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-ce83f7a7-804e-4ab3-8358-8bfc2ac19dfe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.034735s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a61555f6-ac20-43e8-a971-4821fd477fa1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-d2ee7009-cb41-478a-973a-62da6f94464a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.097768s] ... 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-b4e1fd75-66ae-4100-9831-eba7a0c690bd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:05.597171+00:00", "updated_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": "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"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.044528s] ... 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-d81fa341-1e6b-44c9-819a-ff3eee8b6ec1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1a84e3ca-d576-449d-8ec2-4f1d84021b85", "created_at": "2025-03-28T10:18:05.645867+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1a84e3ca-d576-449d-8ec2-4f1d84021b85", "rel": "self"}, {"href": "http://localhost/deploy_templates/1a84e3ca-d576-449d-8ec2-4f1d84021b85", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.045763s] ... 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-81421d8a-1de9-49ee-94d0-b17b18650ff3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.046198s] ... 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-6231894a-bdd7-4df7-80a7-b9ac5673c03d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:05.658291+00:00", "updated_at": "2025-03-28T10:18:05.670983+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-bc80fd7e-00bc-48eb-b589-0f4d930e9542
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:05.658291+00:00", "updated_at": "2025-03-28T10:18:05.670983+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"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match [0.064787s] ... 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-ae3fba38-3ffd-4bd6-9a31-c81de0ff701b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": []}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.049398s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/1df7a901-8808-438c-b843-7e6ece352180 WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6d1209fc-9078-46c2-b4e3-9e52efc5ed46
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.040595s] ... 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-06df806f-5321-4d7b-9c21-59863b9970c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:05.705329+00:00", "updated_at": "2025-03-28T10:18:05.716940+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"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.047385s] ... 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-8cf944bd-56c5-41d2-a920-43652873b32e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.035309s] ... 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-f1056aaa-8b72-4b59-a1d8-2d80e5642c8e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: uuid, extra, description\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.047809s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e24e996a-64ba-4fff-9b8d-c462dd42b539
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.047472s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/8ce6bda7-db1f-4f31-b600-a51f88a24dca WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bdc0d592-1823-461e-a3d9-3e1fabfc8506
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "8ce6bda7-db1f-4f31-b600-a51f88a24dca", "created_at": "2025-03-28T10:18:05.743640+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8ce6bda7-db1f-4f31-b600-a51f88a24dca", "rel": "self"}, {"href": "http://localhost/deploy_templates/8ce6bda7-db1f-4f31-b600-a51f88a24dca", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.047195s] ... 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-416cdc7f-fb99-4344-815b-1057d9b5633b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.70
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.032326s] ... 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-7f093cb3-ed70-4ae5-8d97-a8f1dc801a06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_deploy_template.TestPatch.test_update_name_standard_trait [0.046458s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/eb2afe57-5c85-490c-a35d-4d3107db2302 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-33816ef7-0a66-4422-b1c5-ca6e600a8543
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "eb2afe57-5c85-490c-a35d-4d3107db2302", "created_at": "2025-03-28T10:18:05.789590+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/eb2afe57-5c85-490c-a35d-4d3107db2302", "rel": "self"}, {"href": "http://localhost/deploy_templates/eb2afe57-5c85-490c-a35d-4d3107db2302", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.048926s] ... 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-cb12f4b3-d110-4ffe-8fd1-bd6e4993f3ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPatch.test_update_not_found [0.030933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/c0548d27-fb5d-4b01-bd8f-12c8c194ad87 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-40a6b1b4-6f4c-4017-98a2-c3fd7bf8af84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template c0548d27-fb5d-4b01-bd8f-12c8c194ad87 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden [0.096816s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d1743e3e-10f7-4936-88dc-08b13608af01
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "12dc64fb-27c4-41d1-b83f-f8f87b1155c1", "created_at": "2025-03-28T10:18:05.807169+00:00", "updated_at": null, "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/12dc64fb-27c4-41d1-b83f-f8f87b1155c1", "rel": "self"}, {"href": "http://localhost/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/states", "rel": "self"}, {"href": "http://localhost/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/volume", "rel": "self"}, {"href": "http://localhost/nodes/12dc64fb-27c4-41d1-b83f-f8f87b1155c1/volume", "rel": "bookmark"}]}, {"uuid": "b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2", "created_at": "2025-03-28T10:18:05.809734+00:00", "updated_at": null, "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/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2", "rel": "self"}, {"href": "http://localhost/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/ports", "rel": "self"}, {"href": "http://localhost/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/states", "rel": "self"}, {"href": "http://localhost/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/volume", "rel": "self"}, {"href": "http://localhost/nodes/b4b47991-c3b1-4b8f-8063-8d58c9dbc7b2/volume", "rel": "bookmark"}]}, {"uuid": "610a5365-09bf-4d85-a5ad-878032577940", "created_at": "2025-03-28T10:18:05.812189+00:00", "updated_at": null, "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/610a5365-09bf-4d85-a5ad-878032577940", "rel": "self"}, {"href": "http://localhost/nodes/610a5365-09bf-4d85-a5ad-878032577940", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/610a5365-09bf-4d85-a5ad-878032577940/ports", "rel": "self"}, {"href": "http://localhost/nodes/610a5365-09bf-4d85-a5ad-878032577940/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/610a5365-09bf-4d85-a5ad-878032577940/states", "rel": "self"}, {"href": "http://localhost/nodes/610a5365-09bf-4d85-a5ad-878032577940/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/610a5365-09bf-4d85-a5ad-878032577940/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/610a5365-09bf-4d85-a5ad-878032577940/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/610a5365-09bf-4d85-a5ad-878032577940/volume", "rel": "self"}, {"href": "http://localhost/nodes/610a5365-09bf-4d85-a5ad-878032577940/volume", "rel": "bookmark"}]}, {"uuid": "c399e6ff-4e51-45da-aef4-77929badb08f", "created_at": "2025-03-28T10:18:05.829240+00:00", "updated_at": null, "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/c399e6ff-4e51-45da-aef4-77929badb08f", "rel": "self"}, {"href": "http://localhost/nodes/c399e6ff-4e51-45da-aef4-77929badb08f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/ports", "rel": "self"}, {"href": "http://localhost/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/states", "rel": "self"}, {"href": "http://localhost/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/volume", "rel": "self"}, {"href": "http://localhost/nodes/c399e6ff-4e51-45da-aef4-77929badb08f/volume", "rel": "bookmark"}]}, {"uuid": "4e028048-8ffa-4ad8-810f-92fc8e0fc30f", "created_at": "2025-03-28T10:18:05.832116+00:00", "updated_at": null, "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/4e028048-8ffa-4ad8-810f-92fc8e0fc30f", "rel": "self"}, {"href": "http://localhost/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/ports", "rel": 
    "self"}, {"href": "http://localhost/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/states", "rel": "self"}, {"href": "http://localhost/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/volume", "rel": "self"}, {"href": "http://localhost/nodes/4e028048-8ffa-4ad8-810f-92fc8e0fc30f/volume", "rel": "bookmark"}]}, {"uuid": "01f05eaa-b3fb-4433-a62c-a67cfedb432c", "created_at": "2025-03-28T10:18:05.834046+00:00", "updated_at": null, "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/01f05eaa-b3fb-4433-a62c-a67cfedb432c", "rel": "self"}, {"href": "http://localhost/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/ports", "rel": "self"}, {"href": "http://localhost/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/states", "rel": "self"}, {"href": "http://localhost/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/volume", "rel": "self"}, {"href": "http://localhost/nodes/01f05eaa-b3fb-4433-a62c-a67cfedb432c/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.072563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/a6797025-4515-4377-b989-2bda9a911d89 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07b0469d-ada8-474c-825f-65f83d8242e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a6797025-4515-4377-b989-2bda9a911d89", "created_at": "2025-03-28T10:18:05.816175+00:00", "updated_at": "2025-03-28T10:18:05.827807+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/a6797025-4515-4377-b989-2bda9a911d89 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b015bca4-b189-4bf4-8d5e-a929890fcb1d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a6797025-4515-4377-b989-2bda9a911d89", "created_at": "2025-03-28T10:18:05.816175+00:00", "updated_at": "2025-03-28T10:18:05.827807+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "bookmark"}]]}
PATCH /v1/chassis/a6797025-4515-4377-b989-2bda9a911d89 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4c1c96f2-f300-4fad-ac2b-3fcab72b908c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a6797025-4515-4377-b989-2bda9a911d89", "created_at": "2025-03-28T10:18:05.816175+00:00", "updated_at": "2025-03-28T10:18:05.853058+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/a6797025-4515-4377-b989-2bda9a911d89 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce4a466b-9045-42f6-9df8-d0b5aa1c527c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a6797025-4515-4377-b989-2bda9a911d89", "created_at": "2025-03-28T10:18:05.816175+00:00", "updated_at": "2025-03-28T10:18:05.853058+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a6797025-4515-4377-b989-2bda9a911d89/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.051697s] ... 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-c564ed3b-1727-4ef9-aa70-69eab2a24d5e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.032057s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6cfe8fb7-7a6f-45a7-af24-630470daaa3b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-bb0db89e-ef5c-41c3-9702-d72ef629cd2b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-7f3eb559-5c60-48dd-98c4-f8918f6f31bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.038538s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-35ea84cf-15f2-4c04-9ea2-673e9143e27b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.027098s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4c6cefb5-45b2-4311-b79a-c543e3367b1d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.051522s] ... 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-6033b42f-85e0-4f8e-90ac-9d62804a292c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_inject_nmi [0.045916s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content
Openstack-Request-Id: req-0d371c14-17b4-43f7-be1a-1f347791e63e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.032262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-24de31c8-1917-4d84-89a9-995a37baa23d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_inject_nmi_not_allowed [0.037072s] ... 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-036b74f2-fdc1-45ba-8bb2-12120c016d84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_detail_query_false [0.058702s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a006ed08-5e8a-4260-ae61-28955b168970
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-6e2a5791-3fe0-45c8-abf2-daec5e34aefd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.028741s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-10f0d69e-be0e-4be2-b6dc-2b1320647f17
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.055910s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/47329416-b9c5-4399-9662-6fdf9c23593d WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-efab39ba-ce30-497a-8205-6d8652f9fe80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "47329416-b9c5-4399-9662-6fdf9c23593d", "created_at": "2025-03-28T10:18:05.939930+00:00", "updated_at": "2025-03-28T10:18:05.958613+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/47329416-b9c5-4399-9662-6fdf9c23593d", "rel": "self"}, {"href": "http://localhost/chassis/47329416-b9c5-4399-9662-6fdf9c23593d", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/47329416-b9c5-4399-9662-6fdf9c23593d/nodes", "rel": "self"}, {"href": "http://localhost/chassis/47329416-b9c5-4399-9662-6fdf9c23593d/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/47329416-b9c5-4399-9662-6fdf9c23593d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3d764c94-e318-491c-a04e-060e9ced214e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "47329416-b9c5-4399-9662-6fdf9c23593d", "created_at": "2025-03-28T10:18:05.939930+00:00", "updated_at": "2025-03-28T10:18:05.958613+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/47329416-b9c5-4399-9662-6fdf9c23593d", "rel": "self"}, {"href": "http://localhost/chassis/47329416-b9c5-4399-9662-6fdf9c23593d", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/47329416-b9c5-4399-9662-6fdf9c23593d/nodes", "rel": "self"}, {"href": "http://localhost/chassis/47329416-b9c5-4399-9662-6fdf9c23593d/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.027155s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9a06403c-77e6-4846-81f4-5b97b00829fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.046696s] ... 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-1fedb25d-91ab-4523-af3b-1d18f20f7693
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_snmpv3 [0.054793s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-303ce104-3f21-4dc5-8a4e-0f0b389b5593
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:05.995249+00:00", "updated_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": {"snmp_version": 3, "snmp_user": "test-user", "snmp_auth_protocol": "sha", "snmp_auth_key": "******", "snmp_priv_protocol": "aes", "snmp_priv_key": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.044623s] ... 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-be4cd8bd-4427-4cfe-a24f-96840fbf6fc0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.037003s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-508cd663-f509-4329-b4a8-f1cfa665cb6c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.050874s] ... 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-c25f1832-369a-441d-a891-b89ee7ade843
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.029644s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-be6a7821-025e-411e-9dca-e225a8fc268a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.048873s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-30a0dc29-cedd-4843-8818-a66a654593d2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "08a33447-b3c0-43e6-b938-4ad9e8099d20", "created_at": "2025-03-28T10:18:06.049138+00:00", "updated_at": "2025-03-28T10:18:06.059836+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20", "rel": "self"}, {"href": "http://localhost/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20/nodes", "rel": "self"}, {"href": "http://localhost/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f48fc575-a164-41b0-8399-ecdc809ffbab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "08a33447-b3c0-43e6-b938-4ad9e8099d20", "created_at": "2025-03-28T10:18:06.049138+00:00", "updated_at": "2025-03-28T10:18:06.059836+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20", "rel": "self"}, {"href": "http://localhost/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20/nodes", "rel": "self"}, {"href": "http://localhost/chassis/08a33447-b3c0-43e6-b938-4ad9e8099d20/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.058683s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b9fe00d9-6fc4-476b-8339-07c14f155197
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "def8fc84-c947-4c14-8083-fe185ef8dcc9", "created_at": "2025-03-28T10:18:06.053049+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/def8fc84-c947-4c14-8083-fe185ef8dcc9", "rel": "self"}, {"href": "http://localhost/nodes/def8fc84-c947-4c14-8083-fe185ef8dcc9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/def8fc84-c947-4c14-8083-fe185ef8dcc9/ports", "rel": "self"}, {"href": "http://localhost/nodes/def8fc84-c947-4c14-8083-fe185ef8dcc9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/def8fc84-c947-4c14-8083-fe185ef8dcc9/states", "rel": "self"}, {"href": "http://localhost/nodes/def8fc84-c947-4c14-8083-fe185ef8dcc9/states", "rel": "bookmark"}]}, {"uuid": "6603b840-728a-4560-81e4-5945f332ebff", "created_at": "2025-03-28T10:18:06.051380+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/6603b840-728a-4560-81e4-5945f332ebff", "rel": "self"}, {"href": "http://localhost/nodes/6603b840-728a-4560-81e4-5945f332ebff", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6603b840-728a-4560-81e4-5945f332ebff/ports", "rel": "self"}, {"href": "http://localhost/nodes/6603b840-728a-4560-81e4-5945f332ebff/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6603b840-728a-4560-81e4-5945f332ebff/states", "rel": "self"}, {"href": "http://localhost/nodes/6603b840-728a-4560-81e4-5945f332ebff/states", "rel": "bookmark"}]}, {"uuid": "efbf1b68-c1ff-4e0f-8b4a-a66f5aaafef7", "created_at": "2025-03-28T10:18:06.049383+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/efbf1b68-c1ff-4e0f-8b4a-a66f5aaafef7", "rel": "self"}, {"href": "http://localhost/nodes/efbf1b68-c1ff-4e0f-8b4a-a66f5aaafef7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/efbf1b68-c1ff-4e0f-8b4a-a66f5aaafef7/ports", "rel": "self"}, {"href": "http://localhost/nodes/efbf1b68-c1ff-4e0f-8b4a-a66f5aaafef7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/efbf1b68-c1ff-4e0f-8b4a-a66f5aaafef7/states", "rel": "self"}, {"href": "http://localhost/nodes/efbf1b68-c1ff-4e0f-8b4a-a66f5aaafef7/states", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.031840s] ... 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-763494fb-cf22-4386-bb41-c463e93b9f27
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.048391s] ... 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-afbe9481-1810-4882-ba3b-41a0a431ea69
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.041762s] ... 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-4ce8fb59-277a-429a-b7a0-418bf51416cf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.089291+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-a020c34f-f521-40eb-88ba-230e157bf4a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.089291+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.TestListNodes.test_detail_sort_key_not_allowed [0.038242s] ... 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-9787e9c8-a8c2-485a-9d3c-62a2e4123223
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.033409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted
Openstack-Request-Id: req-b2b7cbf5-9ee2-450c-82fc-6c5dd606cc7c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.035607s] ... 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-db144033-da58-45af-a813-cae835ba0866
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.024346s] ... 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-36b246b8-9ac6-4257-a3ee-208cdd35eef4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.049260s] ... 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-ddff26ff-91a6-433e-89c5-44ebc4017a16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.050983s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dc86a8a9-11b2-49cc-8217-6b921f012657
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:06.148352+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.030829s] ... 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-8a9b234f-f8b4-4e57-822f-9fbe7656b40f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
"foo"
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.045326s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/0041ed24-f806-4f8b-afe1-7247ce0a0c98 WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f9820348-0dd3-4251-908a-e131331ae251
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 0041ed24-f806-4f8b-afe1-7247ce0a0c98 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.048631s] ... 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-ccac17a3-3759-4942-9b8f-e3f867b43996
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.041563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-79865eb0-c94c-4988-9c45-8f1b8ad3304a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.034773s] ... 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-45b5253d-e4e9-4538-970a-2ba721be3f94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-58cb2227-4a0b-495b-9c77-825df30fb987
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.022967s] ... 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-0e1063fa-2956-453c-b37c-3386f646c7f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.040527s] ... 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-74cbf955-4546-4778-9d79-a3c70390fa1a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-7f4c0831-1a54-41d8-adb2-6ecc0e324f3c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_inspect_validation_failed_status_code [0.046917s] ... 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-955b8ed6-0c8b-4c8d-89b7-10bb758bb0e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.067752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-59964f89-ffb4-4e42-b978-b5eac6607691
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.030897s] ... 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-a66bf57b-dae9-478f-86d3-b4c1720b7632
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.057705s] ... 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-73e401f7-b6c5-451b-89b9-17ec6dafe4a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.263988+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-0132572f-41c0-447c-870f-b33bc53e7e74
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.263988+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.048958s] ... 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-635e7dd6-92d5-4cdb-9950-726f9d97981f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.029995s] ... 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-2a345b40-8496-4d6f-9cdb-fecfa6127109
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.033268s] ... 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-3a86798c-15d2-4ba5-a848-0d7626084dff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_detail_using_query_old_version [0.050569s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-cc5296b5-28c5-42f8-adc1-3a9bb43fbcd4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.047052s] ... 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-57898104-3ecd-45cb-ba00-a8035936e304
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.035584s] ... 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/59415150-00cf-427d-9e79-d0a4100e812b
Openstack-Request-Id: req-0a8f9246-377c-4dca-b354-d0f5d5d80379
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "59415150-00cf-427d-9e79-d0a4100e812b", "created_at": "2025-03-28T10:18:06.344036+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/59415150-00cf-427d-9e79-d0a4100e812b", "rel": "self"}, {"href": "http://localhost/chassis/59415150-00cf-427d-9e79-d0a4100e812b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/59415150-00cf-427d-9e79-d0a4100e812b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/59415150-00cf-427d-9e79-d0a4100e812b/nodes", "rel": "bookmark"}]]}
GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-99eb35c0-8c7d-4b20-bebd-bc63be677c1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "59415150-00cf-427d-9e79-d0a4100e812b", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/59415150-00cf-427d-9e79-d0a4100e812b", "rel": "self"}, {"href": "http://localhost/chassis/59415150-00cf-427d-9e79-d0a4100e812b", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.056349s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-820f540b-3e42-42c7-a2dd-de22381d57f0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-3f436270-e3c3-4db9-a99e-57381f62c09e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-4f8dfbd7-2610-4aea-ad45-a8b9d0d9efa2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-e51a6f1f-87cb-4955-885b-ff9654167ee6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-d2467fbb-749c-4f65-bf20-30022f79e9a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_chassis.TestPost.test_create_chassis_invalid_description [0.027741s] ... 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-fe58ec2a-7587-4ed6-996a-c2f0a664d3dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 1334 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.073029s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d90d0b2-2e23-4c0b-b2b5-428c958cac34
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "a2a525b9-a4a6-4dfa-bbd6-5c17d47fa209", "created_at": "2025-03-28T10:18:06.371405+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "649bbb64-1a9a-4456-a629-6149f433d81a", "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/a2a525b9-a4a6-4dfa-bbd6-5c17d47fa209", "rel": "self"}, {"href": "http://localhost/nodes/a2a525b9-a4a6-4dfa-bbd6-5c17d47fa209", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a2a525b9-a4a6-4dfa-bbd6-5c17d47fa209/ports", "rel": "self"}, {"href": "http://localhost/nodes/a2a525b9-a4a6-4dfa-bbd6-5c17d47fa209/ports", "rel": "bookmark"}]}, {"uuid": "de1a5915-4ae7-42a7-a6a6-1dff0a749951", "created_at": "2025-03-28T10:18:06.377107+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "13987146-3309-45f6-8aa8-7b642078212b", "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/de1a5915-4ae7-42a7-a6a6-1dff0a749951", "rel": "self"}, {"href": "http://localhost/nodes/de1a5915-4ae7-42a7-a6a6-1dff0a749951", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/de1a5915-4ae7-42a7-a6a6-1dff0a749951/ports", "rel": "self"}, {"href": "http://localhost/nodes/de1a5915-4ae7-42a7-a6a6-1dff0a749951/ports", "rel": "bookmark"}]}, {"uuid": "5e3eddaa-47e4-42fe-8909-72d410aa17bd", "created_at": "2025-03-28T10:18:06.379688+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "07ed4625-c1d8-460b-9187-330f56c84bef", "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/5e3eddaa-47e4-42fe-8909-72d410aa17bd", "rel": "self"}, {"href": "http://localhost/nodes/5e3eddaa-47e4-42fe-8909-72d410aa17bd", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5e3eddaa-47e4-42fe-8909-72d410aa17bd/ports", "rel": "self"}, {"href": "http://localhost/nodes/5e3eddaa-47e4-42fe-8909-72d410aa17bd/ports", "rel": "bookmark"}]}, {"uuid": "b12af100-334f-413f-b599-52873824a56b", "created_at": "2025-03-28T10:18:06.384386+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "8e460066-437a-45fc-ad26-7f84f67a4b86", "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/b12af100-334f-413f-b599-52873824a56b", "rel": "self"}, {"href": "http://localhost/nodes/b12af100-334f-413f-b599-52873824a56b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b12af100-334f-413f-b599-52873824a56b/ports", "rel": "self"}, {"href": "http://localhost/nodes/b12af100-334f-413f-b599-52873824a56b/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.028543s] ... 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-d5e5f5a8-5445-432c-bb4f-8708af122f8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields [0.038000s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd8c4f29-5b4e-4dc9-9fce-694f97906b31
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_power_change_when_being_cleaned [0.062939s] ... 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-5628c0ea-661b-47e5-a307-f9513f8f6527
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-b8dc6c40-aab5-4eef-8687-630091a9fb6c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.034833s] ... 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-975b7316-9fa0-4661-bbd1-b40a37897292
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.437039+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-c1e4f8cc-7fef-4c72-9ec8-730122655b83
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.437039+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"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.041600s] ... 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-32fee381-42d5-45ee-a723-6b40e0e67a2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.054851s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?instance_uuid=9c337e6c-95fc-410d-9091-794e618aab1e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-09233a60-de6b-45a3-8b35-25f54e77b947
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "586dfaf1-9144-4efc-8886-5c6e5662e06c", "created_at": "2025-03-28T10:18:06.439026+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "9c337e6c-95fc-410d-9091-794e618aab1e", "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/586dfaf1-9144-4efc-8886-5c6e5662e06c", "rel": "self"}, {"href": "http://localhost/nodes/586dfaf1-9144-4efc-8886-5c6e5662e06c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/586dfaf1-9144-4efc-8886-5c6e5662e06c/ports", "rel": "self"}, {"href": "http://localhost/nodes/586dfaf1-9144-4efc-8886-5c6e5662e06c/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.037376s] ... 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-a5ef7cc2-eb21-4034-9e94-57b6306021e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.474137+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-fe68fe55-8625-487c-b153-604ab3a79864
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:06.474137+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.038774s] ... 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-5ea38794-4b59-4f45-8f8d-80ad03219f20
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.040208s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-80b4b832-6135-4d65-9895-410dd5f46b5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": []}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.032369s] ... 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-538ff712-b564-4b81-b475-f511eda36e98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.067736s] ... 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-5901070b-9927-4012-9509-6de634cc6950
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestListNodes.test_get_all_interface_fields [0.053626s] ... 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-edc68751-50fd-495e-9f37-45606e7820c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "power_interface": null, "raid_interface": null, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.040705s] ... 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-7c5b5e92-8be2-430c-a399-d92b998431a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next [0.018732s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next [0.018357s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links [0.016659s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.038433s] ... 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-a6eb52fe-1dfb-4ce0-a43e-aeb8d971ce71
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.037138s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8134ba3b-9a07-4675-87b4-f60f8d53079c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": [{"hostname": "9aeb2993-b4e7-4f77-acf2-088e64439ac0", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/9aeb2993-b4e7-4f77-acf2-088e64439ac0", "rel": "self"}, {"href": "http://localhost/conductors/9aeb2993-b4e7-4f77-acf2-088e64439ac0", "rel": "bookmark"}], "alive": true}, {"hostname": "162564de-e173-4705-a91e-a48f6e30f8d4", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/162564de-e173-4705-a91e-a48f6e30f8d4", "rel": "self"}, {"href": "http://localhost/conductors/162564de-e173-4705-a91e-a48f6e30f8d4", "rel": "bookmark"}], "alive": true}, {"hostname": "9b830e36-49bb-45c9-919a-f684b94cda47", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/9b830e36-49bb-45c9-919a-f684b94cda47", "rel": "self"}, {"href": "http://localhost/conductors/9b830e36-49bb-45c9-919a-f684b94cda47", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=9b830e36-49bb-45c9-919a-f684b94cda47"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.088560s] ... 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-6582209d-cc42-4312-9fbd-1bf18ca9d499
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.036264s] ... 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-c2dfcdc9-62ea-4c63-9f3c-a075539a2ec1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.034673s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-27b6de7b-c91c-490e-87be-61bc28ff3912
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": [{"hostname": "7995e391-f507-4efe-8807-cf22f51e6dcc", "links": [{"href": "http://localhost/v1/conductors/7995e391-f507-4efe-8807-cf22f51e6dcc", "rel": "self"}, {"href": "http://localhost/conductors/7995e391-f507-4efe-8807-cf22f51e6dcc", "rel": "bookmark"}], "alive": true}, {"hostname": "c2a18e76-5101-4379-ad06-66736c1ed20f", "links": [{"href": "http://localhost/v1/conductors/c2a18e76-5101-4379-ad06-66736c1ed20f", "rel": "self"}, {"href": "http://localhost/conductors/c2a18e76-5101-4379-ad06-66736c1ed20f", "rel": "bookmark"}], "alive": true}, {"hostname": "51695af9-651b-4496-9c16-0d31bd2a3697", "links": [{"href": "http://localhost/v1/conductors/51695af9-651b-4496-9c16-0d31bd2a3697", "rel": "self"}, {"href": "http://localhost/conductors/51695af9-651b-4496-9c16-0d31bd2a3697", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=51695af9-651b-4496-9c16-0d31bd2a3697"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.038839s] ... 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-87a29df1-713f-472c-abc4-80a5d1a866e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.281007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a85c239-266b-4132-81b8-533155efabe2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.033764s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c2cfa5f5-291c-4b79-8a37-e88072452a8c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": [{"hostname": "3a6cbaab-8f73-4915-aad5-e6cc2073cbad", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/3a6cbaab-8f73-4915-aad5-e6cc2073cbad", "rel": "self"}, {"href": "http://localhost/conductors/3a6cbaab-8f73-4915-aad5-e6cc2073cbad", "rel": "bookmark"}], "alive": true}, {"hostname": "ada38bbf-d26c-415c-a3ec-66499e30f3a3", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/ada38bbf-d26c-415c-a3ec-66499e30f3a3", "rel": "self"}, {"href": "http://localhost/conductors/ada38bbf-d26c-415c-a3ec-66499e30f3a3", "rel": "bookmark"}], "alive": true}, {"hostname": "6fa637d8-4276-43f3-97e7-a1692bd3b030", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/6fa637d8-4276-43f3-97e7-a1692bd3b030", "rel": "self"}, {"href": "http://localhost/conductors/6fa637d8-4276-43f3-97e7-a1692bd3b030", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=6fa637d8-4276-43f3-97e7-a1692bd3b030"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.031586s] ... 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-234e4332-0747-4ba3-8fd2-ea22526132c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_automated_clean_fields [0.089153s] ... 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-d700986f-ca8a-4ffd-9aa2-f9b4ff4fa1a9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_conductor.TestListConductors.test_empty [0.030084s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ce7924d-69da-4e1a-aa9d-a0244cb6a053
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": []}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.063149s] ... 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-5ec52a70-157d-4ca6-a1b2-85ca37a546b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.029717s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9acca684-b769-4ba7-9fda-056becf919fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.037334s] ... 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-a1ffd427-dc22-44e0-91d4-b084ac13d00a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.060383s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b30bd7bf-7fe3-40e9-b275-bf68113c603c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.027297s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-8c1e5b17-d4d5-49eb-b828-bf6d580b18cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.082687s] ... 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-87bb47d0-f917-4f85-b840-780a21865a09
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"boot_device": "pxe", "persistent": true}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.038346s] ... 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-2723b7ed-e18f-43c8-8109-69bc97a7a249
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.053946s] ... 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-13091157-b2ff-48c1-a2f6-3e4e3ed6024a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.028589s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-2c6bd6e6-a312-4d93-ba46-009c7e0c0698
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.038051s] ... 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-53bba5ed-51a3-46f3-9ec1-3932244e24f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.028091s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6bbfe8c6-2f97-48e9-a040-e45a5aac60f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_conductor.TestListConductors.test_get_one [0.058112s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b07cc62e-84bf-4369-b69d-c175a8b77007
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:06.870549+00:00", "updated_at": "2025-03-28T10:18:06.870319+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.077001s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f87751ee-1815-4c88-8244-baac2fe166f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.038618s] ... 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-cc6492eb-6611-484d-8528-a6926b1a4e80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.043704s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-66f5fefd-ae3b-477f-81b7-08109bee208f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d8cc03b2-8b86-4d91-a90b-d12f37d0025c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-8a6f4b09-8129-4300-85bd-28626b2b1996
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.036846s] ... 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-39476079-1e13-4aef-ba6e-0e626def6f4c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.046907s] ... 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-3a6e7fe6-8a10-4619-8639-f1d0fec195db
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_conductor.TestListConductors.test_get_one_conductor_offline [0.074406s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35b9b926-210a-40d1-9ac1-3f8c762acc21
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2000-01-01T00:00:00+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.055229s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7c9f55c4-ca2f-4e71-b0f5-73a7ee74928e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_management_interface": null, "enabled_management_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-caa5cb4d-8542-469a-b1e7-f388e07b0d5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-2df2c77c-f683-481d-83a6-6729108fcd21
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_collection_custom_fields [0.040664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8065d3da-3880-4a62-aa81-7757154c2e90
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "8cfbd09e-3dda-45ab-800e-abf9bfc0a855", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/8cfbd09e-3dda-45ab-800e-abf9bfc0a855", "rel": "self"}, {"href": "http://localhost/nodes/8cfbd09e-3dda-45ab-800e-abf9bfc0a855", "rel": "bookmark"}]}, {"uuid": "c8fb7a62-294f-482c-8e94-007dbea3f417", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/c8fb7a62-294f-482c-8e94-007dbea3f417", "rel": "self"}, {"href": "http://localhost/nodes/c8fb7a62-294f-482c-8e94-007dbea3f417", "rel": "bookmark"}]}, {"uuid": "0f136738-54b2-46fe-8974-9895386f83e8", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/0f136738-54b2-46fe-8974-9895386f83e8", "rel": "self"}, {"href": "http://localhost/nodes/0f136738-54b2-46fe-8974-9895386f83e8", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.026730s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f9ae2639-899a-4e1d-8db7-425a4f86a3b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"drivers": []}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.043975s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9725eed3-2a47-4b49-9e59-7e5801483fad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.024068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5068ffe9-7e75-442a-96ca-211e2ae55432
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.040655s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c67c177-7dba-499c-b4d5-aad422d7a589
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1959ab06-d828-4120-b653-029c05fe0652", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1959ab06-d828-4120-b653-029c05fe0652", "rel": "self"}, {"href": "http://localhost/nodes/1959ab06-d828-4120-b653-029c05fe0652", "rel": "bookmark"}]}, {"uuid": "fe735dc4-750d-4050-a35e-81ac37495d10", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/fe735dc4-750d-4050-a35e-81ac37495d10", "rel": "self"}, {"href": "http://localhost/nodes/fe735dc4-750d-4050-a35e-81ac37495d10", "rel": "bookmark"}]}, {"uuid": "1d961ce5-70f6-4d5e-9f84-1ffc6fb91754", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1d961ce5-70f6-4d5e-9f84-1ffc6fb91754", "rel": "self"}, {"href": "http://localhost/nodes/1d961ce5-70f6-4d5e-9f84-1ffc6fb91754", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.025695s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-34b80f54-1e9c-4af1-94a9-cb665ac231a9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_type_filter_classic [0.028431s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d484dbec-36a6-4ad6-bd3c-68890a8eb827
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova [0.067895s] ... 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-481bb555-f81b-47a7-96c0-c4219787d4b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "f7bbb18b-0da3-4b4b-ac44-4e09d195613e", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "1d605df8-f596-4456-a830-cd8305cfa9d2", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/f7bbb18b-0da3-4b4b-ac44-4e09d195613e", "rel": "self"}, {"href": "http://localhost/nodes/f7bbb18b-0da3-4b4b-ac44-4e09d195613e", "rel": "bookmark"}]}, {"uuid": "4c5da115-b68e-4b51-8d01-0ded57c39694", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "71958ce8-198d-413d-a1aa-b6e2bc836f54", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/4c5da115-b68e-4b51-8d01-0ded57c39694", "rel": "self"}, {"href": "http://localhost/nodes/4c5da115-b68e-4b51-8d01-0ded57c39694", "rel": "bookmark"}]}, {"uuid": "9823e430-aa24-4977-ad1d-b8ab0aa1d6d8", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "9e02732a-b97a-45cc-81f0-fd0eab0b50d0", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/9823e430-aa24-4977-ad1d-b8ab0aa1d6d8", "rel": "self"}, {"href": "http://localhost/nodes/9823e430-aa24-4977-ad1d-b8ab0aa1d6d8", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.037930s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b29ede8-1ef9-4b1d-b823-3a09f7e3a95b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic"}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.102737s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06a3f153-6168-4b31-93e6-f39ff88b7600
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-f13a9a7a-1fd9-4314-8af6-69ba1532e3e4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-1b8d1a6c-1129-4e74-9e5f-7a481dbada7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-df0116d2-b3d7-4546-b7b2-e3f36f854444
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-763be7f7-0a07-44b6-a6e1-2f6fc216fef8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.318892s] ... 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-a4821ef4-6a38-4030-b265-ddc1a8c84fa2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.046032s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-21cb09f0-c331-4b26-826b-a8a1f88831c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": []}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-323c3d17-da50-4837-90f4-e72670ee671d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-915783ba-b696-49d6-9fdf-a0271c8b5df0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-d81c5ef9-8480-4ee0-9448-66186fcec325
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-f120e639-7334-4aab-8681-3ca7ee5608
    1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_conductor.TestListConductors.test_get_one_with_invalid_api [0.283730s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1ab89107-2dd8-4f60-80ad-4e984ceef90a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.044636s] ... 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-2bac7cf8-95b7-41f0-bbeb-ca3684c8955f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.047328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ccd06da1-515a-471c-bed6-854eeebfdf97
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_management_interface": null, "enabled_management_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_management_interface": null, "enabled_management_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": []}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-75047b11-3f5f-4018-a0eb-7546a56ae068
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-e1cccafc-700f-4934-ac1a-30b47bf98cde
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-
    48bcccd8-7ec5-4e4c-8dc4-9300c30de31d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-b73eb611-80d5-434c-917b-f3c8e3e51dad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.237545s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3692516-45a5-4e43-9cf3-b7e308a88ef8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/bd370c13-cc96-4fcd-9a1b-b9162b053b0a", "rel": "self"}, {"href": "http://localhost/nodes/bd370c13-cc96-4fcd-9a1b-b9162b053b0a", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/c55dd536-0435-43b5-848e-6f9af2faeff5", "rel": "self"}, {"href": "http://localhost/nodes/c55dd536-0435-43b5-848e-6f9af2faeff5", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=c55dd536-0435-43b5-848e-6f9af2faeff5"}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.053537s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58a5d3aa-8e6d-45cb-b52f-06fd8e1feac7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:07.338993+00:00", "updated_at": "2025-03-28T10:18:07.338763+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}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.050580s] ... 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-1733cc60-c27d-43a4-b804-0e7896b21185
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_get_custom_fields_invalid_api_version [0.043232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-8dbb36ab-4c89-4281-b5f6-e6a2f3895852
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-3653ad76-e108-4584-9bb6-58f492f89ce5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.035084s] ... 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-1da26204-6e67-4da1-b4dc-39c2e39ab648
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor"}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.043599s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0c448571-dd4b-4b20-bb0d-4c79d8fe7073
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:07.373020+00:00", "updated_at": "2025-03-28T10:18:07.372779+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-95caee98-c86c-45e8-af12-fe92ffcd5e94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:07.373020+00:00", "updated_at": "2025-03-28T10:18:07.372779+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-818d0fe1-349a-4acd-8b9c-d8981c1cc7c9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:07.373020+00:00", "updated_at": "2025-03-28T10:18:07.372779+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.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.045542s] ... 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-83a9ee48-3532-4bf5-9220-43d57a77cc67
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.039945s] ... 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-d2b6df17-4670-46e7-8d71-e2f47b3f3e9d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields [0.050835s] ... 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-f733aabc-9ff5-4c0e-a479-cb6975e37c98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.033867s] ... 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-8e01926f-4665-4dbf-8e1b-062ab50dc802
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.041047s] ... 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-bf2ce714-560e-4fae-b677-9fba7faf0c25
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.047375s] ... 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-b27b5319-03e9-4b33-a6c7-c8691150a3db
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.078263s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b84ad4a8-d710-4847-ac44-38cbb0db723a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:07.437225+00:00", "updated_at": "2025-03-28T10:18:07.436980+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-b219342b-bc97-4fce-8e66-39837a7bf11f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:07.437225+00:00", "updated_at": "2025-03-28T10:18:07.436980+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-a4b72757-5fe3-4ead-b5ac-10c699ad8b76
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:07.437225+00:00", "updated_at": "2025-03-28T10:18:07.436980+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}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.040703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32194d42-3871-4ffc-98fa-a018b7370a49
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-cb270f6b-cc94-4cfb-b063-c8d9f8625e96
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-c707c06a-c34c-4d83-a94f-bc1e826a504e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.033871s] ... 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-38fe6450-9f06-4cab-9882-a2b674c75b12
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.048172s] ... 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-ef089114-e27d-43fa-884b-f8b81cbd6bf6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_links_public_url [0.050315s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-621585dc-3ca2-45e9-899d-524aa5360f8c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-55bb7a01-eed5-4d27-bdbc-c3c19dedf7ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-40ab0013-7747-4e9a-8846-1b6fb8287fbe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_conductor.TestListConductors.test_list [0.071584s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd21b5ac-ad79-4cb2-bcaa-e1b221ff0177
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.043267s] ... 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-331525fb-fb7a-4faa-9afd-55a42fc2100d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.073362s] ... 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-41950442-7b08-4b61-9676-6ce82fe6129f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": true, "console_info": {"test": "test-data"}}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.035507s] ... 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-91d98729-8a3f-4546-84b6-183f0292c8a9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_conductor.TestListConductors.test_list_with_detail [0.057771s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a37e3d1c-4ea4-49ab-8fa7-608fa98b4586
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": [{"created_at": "2025-03-28T10:18:07.590413+00:00", "updated_at": "2025-03-28T10:18:07.590146+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-03-28T10:18:07.591682+00:00", "updated_at": "2025-03-28T10:18:07.591541+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.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.042804s] ... 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-94468d10-6dfb-4945-a71c-31fd6cc59b5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.044564s] ... 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-4f4acbea-5412-4660-9dca-4da4b075c701
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-56851fde-27c7-436b-a9e0-b9dca377161e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-798de1d8-cee1-4a25-b3dc-99d8b47a0716
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_conductor.TestListConductors.test_list_with_invalid_api [0.035063s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cbc59a91-5dcc-4f70-a566-9bfaeca5bb82
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.064868s] ... 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-caec6710-bc53-466f-8511-2f543bbb17d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.032767s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4288b3a3-f14e-4532-9b08-c5398010a05e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": [{"hostname": "01efa83c-c260-495a-9ed3-68f5876ad363", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/01efa83c-c260-495a-9ed3-68f5876ad363", "rel": "self"}, {"href": "http://localhost/conductors/01efa83c-c260-495a-9ed3-68f5876ad363", "rel": "bookmark"}], "alive": true}, {"hostname": "4df63d24-b703-4390-9496-a64d92bb1970", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/4df63d24-b703-4390-9496-a64d92bb1970", "rel": "self"}, {"href": "http://localhost/conductors/4df63d24-b703-4390-9496-a64d92bb1970", "rel": "bookmark"}], "alive": true}, {"hostname": "651da8e5-dcb5-4fb6-8948-c26ade99f5e4", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/651da8e5-dcb5-4fb6-8948-c26ade99f5e4", "rel": "self"}, {"href": "http://localhost/conductors/651da8e5-dcb5-4fb6-8948-c26ade99f5e4", "rel": "bookmark"}], "alive": true}, {"hostname": "931bf528-abbf-4109-b75c-96d44710d60f", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/931bf528-abbf-4109-b75c-96d44710d60f", "rel": "self"}, {"href": "http://localhost/conductors/931bf528-abbf-4109-b75c-96d44710d60f", "rel": "bookmark"}], "alive": true}, {"hostname": "d63d092f-0c26-4a05-83fd-0dda0d8ead3e", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/d63d092f-0c26-4a05-83fd-0dda0d8ead3e", "rel": "self"}, {"href": "http://localhost/conductors/d63d092f-0c26-4a05-83fd-0dda0d8ead3e", "rel": "bookmark"}], "alive": true}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.099997s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b91e4c2a-6fad-4c97-bf4b-85288af7ad06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"console_enabled": true, "console_info": {"test": "test-data"}}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.071500s] ... 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-229fde12-5e23-4ca4-aff5-5e1a1f0e3f54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.026907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c4ae4b58-ab5e-450a-8c66-1093351574b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-c4248d17-4d53-43a8-ac71-8ecb07f051bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestPut.test_provision_already_in_progress [0.053154s] ... 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-e62168e7-fb70-4f38-b7f1-08ac081f09aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.039221s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ddee0979-afff-4f57-8db2-1c0d6593d11b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "3787c7a0-12b0-4d9d-9d22-6544fdb07a41", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/3787c7a0-12b0-4d9d-9d22-6544fdb07a41", "rel": "self"}, {"href": "http://localhost/deploy_templates/3787c7a0-12b0-4d9d-9d22-6544fdb07a41", "rel": "bookmark"}]}, {"uuid": "fe5454d6-138f-4968-b2bf-95b386823af1", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/fe5454d6-138f-4968-b2bf-95b386823af1", "rel": "self"}, {"href": "http://localhost/deploy_templates/fe5454d6-138f-4968-b2bf-95b386823af1", "rel": "bookmark"}]}, {"uuid": "998a9286-c037-4551-81ff-74922ae8b8ca", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/998a9286-c037-4551-81ff-74922ae8b8ca", "rel": "self"}, {"href": "http://localhost/deploy_templates/998a9286-c037-4551-81ff-74922ae8b8ca", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=998a9286-c037-4551-81ff-74922ae8b8ca"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.077335s] ... 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-107faeaf-7f9f-49ef-98ae-e2c1caf46b62
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": false, "console_info": null}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.072087s] ... 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-b08ed1d5-5d38-4cee-af93-03ae103d5c35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.052908s] ... 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-ccec338b-b147-4195-af54-5e39fd7c9fa8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.043962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-243cc130-f583-4ea4-89f4-9ff19016967a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "d3ec1bd8-a3ac-4976-b4c8-fa1dc56ae8d5", "links": [{"href": "http://localhost/v1/deploy_templates/d3ec1bd8-a3ac-4976-b4c8-fa1dc56ae8d5", "rel": "self"}, {"href": "http://localhost/deploy_templates/d3ec1bd8-a3ac-4976-b4c8-fa1dc56ae8d5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "2c533623-66a2-4329-a597-02bbd4232c86", "links": [{"href": "http://localhost/v1/deploy_templates/2c533623-66a2-4329-a597-02bbd4232c86", "rel": "self"}, {"href": "http://localhost/deploy_templates/2c533623-66a2-4329-a597-02bbd4232c86", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "70e69e72-711c-4f8f-a3f6-96516c997dbc", "links": [{"href": "http://localhost/v1/deploy_templates/70e69e72-711c-4f8f-a3f6-96516c997dbc", "rel": "self"}, {"href": "http://localhost/deploy_templates/70e69e72-711c-4f8f-a3f6-96516c997dbc", "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=70e69e72-711c-4f8f-a3f6-96516c997dbc"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.040455s] ... 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-899ffb3d-21bb-4fef-8998-af71221722ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.043188s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aa0e4b92-9339-4fb9-8538-ffddaaddb4d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "ddfbb084-468f-4700-a176-97a00debe10d", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/ddfbb084-468f-4700-a176-97a00debe10d", "rel": "self"}, {"href": "http://localhost/deploy_templates/ddfbb084-468f-4700-a176-97a00debe10d", "rel": "bookmark"}]}, {"uuid": "8725cf01-4eb0-4344-a24e-7a205f878352", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/8725cf01-4eb0-4344-a24e-7a205f878352", "rel": "self"}, {"href": "http://localhost/deploy_templates/8725cf01-4eb0-4344-a24e-7a205f878352", "rel": "bookmark"}]}, {"uuid": "d52c910b-25a7-47c5-9312-9782dc154193", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/d52c910b-25a7-47c5-9312-9782dc154193", "rel": "self"}, {"href": "http://localhost/deploy_templates/d52c910b-25a7-47c5-9312-9782dc154193", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=d52c910b-25a7-47c5-9312-9782dc154193"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field [0.059704s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.086207s] ... 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-8f643c5f-0a20-4583-966f-079553355d1a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_deploy_template.TestListDeployTemplates.test_detail_query [0.033204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e0224375-4668-427f-a9f0-07467c794523
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "7809e8e5-b319-439c-b79e-4365d8639349", "created_at": "2025-03-28T10:18:07.848043+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7809e8e5-b319-439c-b79e-4365d8639349", "rel": "self"}, {"href": "http://localhost/deploy_templates/7809e8e5-b319-439c-b79e-4365d8639349", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.043479s] ... 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-6765cacd-b52a-4256-82e1-b6a9692698c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_event.TestEventValidator.test_invalid_event_type [0.045259s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.021099s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.045459s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9cb88e65-08ed-421e-b76b-073306d53567
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "e3099164-2fd9-41cb-9ab7-679d1a10c453", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/e3099164-2fd9-41cb-9ab7-679d1a10c453", "rel": "self"}, {"href": "http://localhost/deploy_templates/e3099164-2fd9-41cb-9ab7-679d1a10c453", "rel": "bookmark"}]}]}
GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7f0dce1-5372-42b5-9c1d-a4575d7ef7e4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "e3099164-2fd9-41cb-9ab7-679d1a10c453", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/e3099164-2fd9-41cb-9ab7-679d1a10c453", "rel": "self"}, {"href": "http://localhost/deploy_templates/e3099164-2fd9-41cb-9ab7-679d1a10c453", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.023080s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.083265s] ... 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-24f2297a-06eb-4d9f-9080-33e33e66fba1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.035505s] ... 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-b49f7492-80aa-4a51-b763-50792f948fca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "ad31f20a-9723-4c51-aeb3-bb16f5e0eb12", "created_at": "2025-03-28T10:18:07.927517+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ad31f20a-9723-4c51-aeb3-bb16f5e0eb12", "rel": "self"}, {"href": "http://localhost/deploy_templates/ad31f20a-9723-4c51-aeb3-bb16f5e0eb12", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "bed479bf-ba36-43da-95bb-d9842de8e386", "created_at": "2025-03-28T10:18:07.925841+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bed479bf-ba36-43da-95bb-d9842de8e386", "rel": "self"}, {"href": "http://localhost/deploy_templates/bed479bf-ba36-43da-95bb-d9842de8e386", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "7673aa07-4a2b-4f60-8128-dd3c01c513b9", "created_at": "2025-03-28T10:18:07.924318+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7673aa07-4a2b-4f60-8128-dd3c01c513b9", "rel": "self"}, {"href": "http://localhost/deploy_templates/7673aa07-4a2b-4f60-8128-dd3c01c513b9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.021711s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.081786s] ... 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-b6cc65b7-9458-4bd0-8259-b5fd0afcb57a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.031184s] ... 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.TestListNodes.test_get_custom_fields_invalid_fields [0.039356s] ... 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-ab248322-d701-4656-9c0d-da1a66fb118f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.039019s] ... 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-be51b949-65f4-4245-b235-e95720fa2b71
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestPut.test_provision_invalid_state_request [0.045530s] ... 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-72dbffdc-4c61-48e8-9228-3b1620089fdc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.033430s] ... 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.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.038447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8b783059-46dd-4b1b-a273-bb8517052cb5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"links": [{"href": "http://localhost/v1/deploy_templates/9b90679f-bd77-415c-9f70-b82d17855500", "rel": "self"}, {"href": "http://localhost/deploy_templates/9b90679f-bd77-415c-9f70-b82d17855500", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.045633s] ... 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-bba8d977-fd87-4f84-95a8-be33799d5ea9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.027819s] ... 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.TestPut.test_provision_locked_with_correct_state [0.060223s] ... 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-71e65aad-05b7-48c3-bf02-142e4b1a6726
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.041551s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-41a3b6c9-e286-43bb-9497-4e72e04111b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.042520s] ... 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-ed42a26b-79ba-4700-88a3-0a770cb57c1f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"state": "on"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.031533s] ... 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.TestListDeployTemplates.test_get_all_invalid_api_version [0.027382s] ... 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_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.037907s] ... 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-9d6f9aee-32d7-4348-bf54-ce8f84514f1c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.035431s] ... 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.TestPut.test_provision_node_in_maintenance_fail [0.056109s] ... 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-476ba073-4bac-4ab1-9727-a6063decf235
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.033708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5159f864-67c3-404e-9ef1-964d56cbe3a8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "101a9e50-74b3-499b-ae30-97a06539eb65", "links": [{"href": "http://localhost/v1/deploy_templates/101a9e50-74b3-499b-ae30-97a06539eb65", "rel": "self"}, {"href": "http://localhost/deploy_templates/101a9e50-74b3-499b-ae30-97a06539eb65", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "e29aefb9-4302-4aa5-9e58-4195b5024c6d", "links": [{"href": "http://localhost/v1/deploy_templates/e29aefb9-4302-4aa5-9e58-4195b5024c6d", "rel": "self"}, {"href": "http://localhost/deploy_templates/e29aefb9-4302-4aa5-9e58-4195b5024c6d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "6344a4d1-aff9-44c2-93b8-05cd3cb9c1fb", "links": [{"href": "http://localhost/v1/deploy_templates/6344a4d1-aff9-44c2-93b8-05cd3cb9c1fb", "rel": "self"}, {"href": "http://localhost/deploy_templates/6344a4d1-aff9-44c2-93b8-05cd3cb9c1fb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.037122s] ... 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.TestListNodes.test_get_indicator_state_versioning [0.050149s] ... 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-94a26ecf-6732-4b7c-b6f9-269a8a417bbe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"state": "on"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.036944s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-725d609f-1b75-4b19-8d7b-4eebbd3b3f48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/67b72fb4-2def-4fbd-9a80-b81c43e04e59", "rel": "self"}, {"href": "http://localhost/deploy_templates/67b72fb4-2def-4fbd-9a80-b81c43e04e59", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/84d58bb6-ff96-4f3a-b357-0f8d4677289a", "rel": "self"}, {"href": "http://localhost/deploy_templates/84d58bb6-ff96-4f3a-b357-0f8d4677289a", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=84d58bb6-ff96-4f3a-b357-0f8d4677289a"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.026653s] ... 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.TestPut.test_provision_rescue_empty_password [0.055376s] ... 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-af2c1531-5651-41a7-86d5-7ae3b637d7a6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field [0.038049s] ... 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-b5a5d8fb-bbce-4054-8921-fd949f3a0b9e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"lessee": "some-lucky-project", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.024358s] ... 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.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.042108s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/3872fa79-eed9-4453-963d-e458b2870f57?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ab4277ea-f013-4a9a-821c-13503ea56bd0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.029070s] ... 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.TestListNodes.test_get_network_interface_fields [0.046426s] ... 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-36d9b253-d751-4bcf-b425-c94a2e558299
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"network_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.032783s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/6e9ea36c-0f5a-4c9a-a6ff-47a404f16fdc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd859550-de25-473d-96dd-ae5fc32846dc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6e9ea36c-0f5a-4c9a-a6ff-47a404f16fdc", "created_at": "2025-03-28T10:18:08.229171+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6e9ea36c-0f5a-4c9a-a6ff-47a404f16fdc", "rel": "self"}, {"href": "http://localhost/deploy_templates/6e9ea36c-0f5a-4c9a-a6ff-47a404f16fdc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.029456s] ... 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.TestPut.test_provision_rescue_in_allowed_states [0.088516s] ... 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-0116aa2a-24a3-4e65-8189-013a290b9a02
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-8810acb5-b878-4988-be2f-fe83f361b550
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-d152000c-b8f0-4c28-b5fe-05a6cbb04cb9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-40487e9c-df82-4377-92ec-d4905aaa54dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.032818s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/0f61a4f8-de4c-46a9-a701-0ba68c80d582?fields=name,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-020fa5c3-b06e-4e99-bcbf-36b9148348f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/0f61a4f8-de4c-46a9-a701-0ba68c80d582", "rel": "self"}, {"href": "http://localhost/deploy_templates/0f61a4f8-de4c-46a9-a701-0ba68c80d582", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.027262s] ... 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.TestListDeployTemplates.test_get_one_invalid_api_version [0.030927s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/bd5a615b-55c7-4d70-ad29-415adb0feb9d 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_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.055665s] ... 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-e848e9fd-a8d1-4346-a3f4-7fb8b3f6db93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.045101s] ... 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.TestListDeployTemplates.test_get_one_with_json [0.033744s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/d71c7a19-f56b-479e-a20e-7ca9a776bce8.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5182e0ca-2b1e-40a9-9dd3-b6d8b60161de
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d71c7a19-f56b-479e-a20e-7ca9a776bce8", "created_at": "2025-03-28T10:18:08.328142+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d71c7a19-f56b-479e-a20e-7ca9a776bce8", "rel": "self"}, {"href": "http://localhost/deploy_templates/d71c7a19-f56b-479e-a20e-7ca9a776bce8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.082753s] ... 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-62cb09f7-eeee-4ecc-a8d2-48210d853336
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-2d33007c-f5f8-44f8-aebc-08a18b90918c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-5ba1fc8b-59f3-4640-97a0-a26ae4626428
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-0a37b37b-4546-45c9-a8ad-9d4dfb0a2105
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_nodes_by_conductor [0.055341s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f96fd2c4-d42d-4c50-9627-ec9d37004528
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-6531bf00-a47f-48ae-aef0-80878ebb6b15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": [{"uuid": "90bd1ef7-384b-4b0f-871f-c4e722111e56", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/90bd1ef7-384b-4b0f-871f-c4e722111e56", "rel": "self"}, {"href": "http://localhost/nodes/90bd1ef7-384b-4b0f-871f-c4e722111e56", "rel": "bookmark"}]}, {"uuid": "e232332c-f584-472c-aa08-b9c0ffd8a9a8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e232332c-f584-472c-aa08-b9c0ffd8a9a8", "rel": "self"}, {"href": "http://localhost/nodes/e232332c-f584-472c-aa08-b9c0ffd8a9a8", "rel": "bookmark"}]}]}
GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-54be6384-ba01-443f-a811-07fe4aab12d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": [{"uuid": "e232332c-f584-472c-aa08-b9c0ffd8a9a8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e232332c-f584-472c-aa08-b9c0ffd8a9a8", "rel": "self"}, {"href": "http://localhost/nodes/e232332c-f584-472c-aa08-b9c0ffd8a9a8", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test_check__check_steps_wrappers [0.044717s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.037666s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/f590c6db-1af3-4885-bcdf-e34516f7bb23 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-612abaf8-cacd-4eca-8deb-0735763fee65
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f590c6db-1af3-4885-bcdf-e34516f7bb23", "created_at": "2025-03-28T10:18:08.366230+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f590c6db-1af3-4885-bcdf-e34516f7bb23", "rel": "self"}, {"href": "http://localhost/deploy_templates/f590c6db-1af3-4885-bcdf-e34516f7bb23", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.046826s] ... 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-4eb8b21d-4e88-4828-b748-29f6d5597e22
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_associated [0.035330s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-1112555e-a0dd-4bd0-a54b-38651200e4b8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_nodes_by_conductor_group [0.074215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-463abc14-ae28-4291-9e87-5cceaecd331f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "996dcbb6-177d-4bd7-9b5a-78303e218888", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888", "rel": "self"}, {"href": "http://localhost/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888", "rel": "bookmark"}]}]}
GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f9d00f96-4406-4f79-ba45-e4fccd10ccb9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "38e86049-9a8a-477d-abb7-aa348cfdc76a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a", "rel": "self"}, {"href": "http://localhost/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e191b2e8-82b7-41d9-a7e4-02de25f8dfb6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "996dcbb6-177d-4bd7-9b5a-78303e218888", "created_at": "2025-03-28T10:18:08.396202+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/996dcbb6-177d-4bd7-9b5a-78303e218888", "rel": "self"}, {"href": "http://localhost/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/ports", "rel": "self"}, {"href": "http://localhost/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/states", "rel": "self"}, {"href": "http://localhost/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/volume", "rel": "self"}, {"href": "http://localhost/nodes/996dcbb6-177d-4bd7-9b5a-78303e218888/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5d192aa9-df64-4a52-a
    647-a36a843419c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "38e86049-9a8a-477d-abb7-aa348cfdc76a", "created_at": "2025-03-28T10:18:08.398191+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/38e86049-9a8a-477d-abb7-aa348cfdc76a", "rel": "self"}, {"href": "http://localhost/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/ports", "rel": "self"}, {"href": "http://localhost/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/states", "rel": "self"}, {"href": "http://localhost/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/volume", "rel": "self"}, {"href": "http://localhost/nodes/38e86049-9a8a-477d-abb7-aa348cfdc76a/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.033851s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content
Openstack-Request-Id: req-84578f04-9806-4f32-b4b3-f83cc6ac8501
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.070481s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d62ff248-ddbc-486e-9240-d496465f0640
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d78fe78f-24bc-4162-bc22-c1da334150c9", "created_at": "2025-03-28T10:18:08.417386+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9", "rel": "self"}, {"href": "http://localhost/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-02359fd6-3e00-47c5-9d90-72abb9ed655d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d78fe78f-24bc-4162-bc22-c1da334150c9", "created_at": "2025-03-28T10:18:08.417386+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9", "rel": "self"}, {"href": "http://localhost/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d5aa6ba7-bc6f-4597-b7b3-d8c7cb6d5d93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "d78fe78f-24bc-4162-bc22-c1da334150c9", "created_at": "2025-03-28T10:18:08.417386+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9", "rel": "self"}, {"href": "http://localhost/deploy_templates/d78fe78f-24bc-4162-bc22-c1da334150c9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.051336s] ... 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-b0342f54-a3b8-4917-b493-c30684320e51
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.030336s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-6c6e0652-2427-468f-a17c-f874636e79f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-9a9e98d5-e7fa-4836-8305-d6417e9b9c97
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.041101s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f6f6ca56-e072-46f0-b475-4fe9c5711864
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "4ef23faf-a9c9-4e12-9290-f721bbb2c48a", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/4ef23faf-a9c9-4e12-9290-f721bbb2c48a", "rel": "self"}, {"href": "http://localhost/deploy_templates/4ef23faf-a9c9-4e12-9290-f721bbb2c48a", "rel": "bookmark"}]}, {"uuid": "eb70b042-3845-4d04-805b-03e1cb8ce6f2", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/eb70b042-3845-4d04-805b-03e1cb8ce6f2", "rel": "self"}, {"href": "http://localhost/deploy_templates/eb70b042-3845-4d04-805b-03e1cb8ce6f2", "rel": "bookmark"}]}, {"uuid": "9f87037f-e5dd-4886-adfb-5ea030b78078", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/9f87037f-e5dd-4886-adfb-5ea030b78078", "rel": "self"}, {"href": "http://localhost/deploy_templates/9f87037f-e5dd-4886-adfb-5ea030b78078", "rel": "bookmark"}]}, {"uuid": "137d6c4f-5898-4731-9f3e-a215f69e914f", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/137d6c4f-5898-4731-9f3e-a215f69e914f", "rel": "self"}, {"href": "http://localhost/deploy_templates/137d6c4f-5898-4731-9f3e-a215f69e914f", "rel": "bookmark"}]}, {"uuid": "f2b442fd-13e8-4467-bdc1-b3cee507269b", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/f2b442fd-13e8-4467-bdc1-b3cee507269b", "rel": "self"}, {"href": "http://localhost/deploy_templates/f2b442fd-13e8-4467-bdc1-b3cee507269b", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.046182s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo.1 GOT Response: 204 No Content
Openstack-Request-Id: req-0f2a227a-688e-4995-9c59-8ba7af00bcb7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.042367s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fc4bf2e7-d5ac-4700-bdf7-b5e2510e60d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-db26b6bc-ab4b-4218-9d11-18f99808228c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-ae664d8c-5f34-4fd3-84ba-0b5c9db5ba47
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.029166s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3723c833-2b30-4199-8435-76ce33f9b074
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "558cee0f-92ae-4e84-bc26-72ee1cf68a56", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/558cee0f-92ae-4e84-bc26-72ee1cf68a56", "rel": "self"}, {"href": "http://localhost/deploy_templates/558cee0f-92ae-4e84-bc26-72ee1cf68a56", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.035332s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-84a4fabc-73a7-4c08-9e14-4770b45b397b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.075378s] ... 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-2cddb2a5-4b10-41fb-b6af-f96c8ca3e5f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-64f9dd91-3016-46cd-b38c-e6241203f646
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-22883108-b60f-4f2b-a3fb-80ee8d45caca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.030015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-e41b02ac-1d22-4bd5-9472-d14327063580
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.030508s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/11f8ccb2-98ae-4bcc-a82f-374c773ce759 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce2319a3-f1cb-4b74-b70d-e2778f3ba932
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "11f8ccb2-98ae-4bcc-a82f-374c773ce759", "created_at": "2025-03-28T10:18:08.541321+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/11f8ccb2-98ae-4bcc-a82f-374c773ce759", "rel": "self"}, {"href": "http://localhost/deploy_templates/11f8ccb2-98ae-4bcc-a82f-374c773ce759", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.038229s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo.json GOT Response: 204 No Content
Openstack-Request-Id: req-90a06dca-de68-447a-b2cb-9692d50b0f3a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.032085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f8d824db-01d5-4234-8d2c-b06e8926ae3d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "82538fc5-aea8-4306-9ec0-9cc3ea347d75", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/82538fc5-aea8-4306-9ec0-9cc3ea347d75", "rel": "self"}, {"href": "http://localhost/deploy_templates/82538fc5-aea8-4306-9ec0-9cc3ea347d75", "rel": "bookmark"}]}, {"uuid": "c1ee7a79-566b-42d8-9f3c-edf6877553a0", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/c1ee7a79-566b-42d8-9f3c-edf6877553a0", "rel": "self"}, {"href": "http://localhost/deploy_templates/c1ee7a79-566b-42d8-9f3c-edf6877553a0", "rel": "bookmark"}]}, {"uuid": "c4625311-a8d0-4e14-88ca-c8c14d7aaa82", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/c4625311-a8d0-4e14-88ca-c8c14d7aaa82", "rel": "self"}, {"href": "http://localhost/deploy_templates/c4625311-a8d0-4e14-88ca-c8c14d7aaa82", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.046778s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-77fd5d17-c633-4de1-a8ac-570478632e3c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"nodes": [{"uuid": "ad37a9f6-2e74-4298-a66b-b6afbefa8ed1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ad37a9f6-2e74-4298-a66b-b6afbefa8ed1", "rel": "self"}, {"href": "http://localhost/nodes/ad37a9f6-2e74-4298-a66b-b6afbefa8ed1", "rel": "bookmark"}]}]}
GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-50df16f5-8de4-4d8d-81e9-ebb0a688c7f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"nodes": [{"uuid": "9030e77d-d8c8-4e0f-b9b5-653c5e20eca9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/9030e77d-d8c8-4e0f-b9b5-653c5e20eca9", "rel": "self"}, {"href": "http://localhost/nodes/9030e77d-d8c8-4e0f-b9b5-653c5e20eca9", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.035287s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted
Openstack-Request-Id: req-65f64b8b-0cae-492b-99eb-fbec2df92556
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.033821s] ... 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-018b485e-f678-4193-99b2-41772577eebc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "1e89e72a-9f33-41de-8840-41bcf9c35003", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/1e89e72a-9f33-41de-8840-41bcf9c35003", "rel": "self"}, {"href": "http://localhost/deploy_templates/1e89e72a-9f33-41de-8840-41bcf9c35003", "rel": "bookmark"}]}, {"uuid": "c4e73c58-f5a4-44f9-9648-ad4d547db2f8", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/c4e73c58-f5a4-44f9-9648-ad4d547db2f8", "rel": "self"}, {"href": "http://localhost/deploy_templates/c4e73c58-f5a4-44f9-9648-ad4d547db2f8", "rel": "bookmark"}]}, {"uuid": "9824078d-a0a4-44f0-a4da-92867d680c81", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/9824078d-a0a4-44f0-a4da-92867d680c81", "rel": "self"}, {"href": "http://localhost/deploy_templates/9824078d-a0a4-44f0-a4da-92867d680c81", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.096323s] ... 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-64907fcb-05cd-4f6a-bd0d-20d2efbe717c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-173e8483-2671-4436-8e44-2dad77e2e68f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-c32d6eb1-8ad3-42b4-a676-3d08e8a0cda6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-c416dcdc-552d-4c39-86f4-330f9e98b6ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-ffc9ac1e-59cb-4a71-a2a1-e1a293dbeb16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_nodes_by_driver [0.045361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-da497608-dcb3-4075-9cc3-3bf651cc8b6a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": [{"uuid": "48d57ecd-4b44-41a8-a7c9-5732e8f9c7f1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/48d57ecd-4b44-41a8-a7c9-5732e8f9c7f1", "rel": "self"}, {"href": "http://localhost/nodes/48d57ecd-4b44-41a8-a7c9-5732e8f9c7f1", "rel": "bookmark"}]}]}
GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c2072356-824b-4beb-a3c4-6df4f7f40583
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": [{"uuid": "0c3b2ae2-f84b-415a-96f1-c2b6446dc33f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0c3b2ae2-f84b-415a-96f1-c2b6446dc33f", "rel": "self"}, {"href": "http://localhost/nodes/0c3b2ae2-f84b-415a-96f1-c2b6446dc33f", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.038616s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted
Openstack-Request-Id: req-bd421260-78f6-4204-b11a-285a04070e8b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.032903s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-74c91941-a205-4fc7-8be6-79e04591b2f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-cee2c497-b8e5-432f-a2c7-d3ec59acdf15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-086c458d-0081-4f34-ad90-9ccf3e92574f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.027828s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-88c9d05a-cbdd-468e-aaf8-ec4b2b1482cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.031103s] ... 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-97914713-4575-4d95-a234-9b32f951c5a3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.050855s] ... 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-59a87a98-b61f-48d0-861d-a2b62ab9fd48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.047781s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9ab8d6a7-259f-4bf8-9d01-311ad8c758b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_event.TestPost.test_events_does_not_contain_event [0.026630s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5992ae0d-b2db-4d8e-85d4-541f178a70a9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.054909s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2faa5558-1611-43f3-8083-29bb4ecd643a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "c4aed3e3-0026-4d44-b770-d5629c395f80", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80", "rel": "self"}, {"href": "http://localhost/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80", "rel": "bookmark"}]}]}
GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-500bc071-bafc-4a3e-aca4-34a6dedcf335
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "6ec64ec7-1444-414e-8e30-761370bc7284", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6ec64ec7-1444-414e-8e30-761370bc7284", "rel": "self"}, {"href": "http://localhost/nodes/6ec64ec7-1444-414e-8e30-761370bc7284", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa27cd80-32f6-4e57-9523-8d716b76ffed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "c4aed3e3-0026-4d44-b770-d5629c395f80", "created_at": "2025-03-28T10:18:08.688067+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/c4aed3e3-0026-4d44-b770-d5629c395f80", "rel": "self"}, {"href": "http://localhost/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/ports", "rel": "self"}, {"href": "http://localhost/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/states", "rel": "self"}, {"href": "http://localhost/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/volume", "rel": "self"}, {"href": "http://localhost/nodes/c4aed3e3-0026-4d44-b770-d5629c395f80/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ed2dec28-b385-4894-91e1-f44652bb4402
X-Openstack-Ironic-Api-Maximum-V
    ersion: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "6ec64ec7-1444-414e-8e30-761370bc7284", "created_at": "2025-03-28T10:18:08.689810+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/6ec64ec7-1444-414e-8e30-761370bc7284", "rel": "self"}, {"href": "http://localhost/nodes/6ec64ec7-1444-414e-8e30-761370bc7284", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/ports", "rel": "self"}, {"href": "http://localhost/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/states", "rel": "self"}, {"href": "http://localhost/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/volume", "rel": "self"}, {"href": "http://localhost/nodes/6ec64ec7-1444-414e-8e30-761370bc7284/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.035858s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4768e9d5-cb5a-4189-b177-3714c94ef9b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.028553s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1b7a3b6a-7fbf-4cac-8f15-4437ccc021ba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.031700s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-542da11e-2fea-44e8-ac84-a6cf5e281842
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-4e456ba5-02a2-4a68-9f9a-4bc9fa23ead1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.030061s] ... 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-89e1fe9e-01e6-4e6b-baa1-c360de0f7898
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.051337s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a232c6e4-86b6-4444-9891-51ba11ac4455
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.030270s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-386d1e5f-6d41-4342-8ec1-a573ed89d6d7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-93d801ee-7829-4628-b982-ba584e78acb4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.036068s] ... 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-5ccdd7ce-c9ee-40fd-981b-f6722ef0dff9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.030116s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-36bd91c6-7554-4bda-858d-aa8e1776b06b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestDelete.test_delete_portgroup_subresource [0.056931s] ... 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-b8eecd59-8079-4f12-9a94-4aca940966cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.026806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bc007a59-f8d0-4a46-97d1-5169ff45aaa9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.038960s] ... 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-687bdb78-47f9-4caa-aa82-a0e99063a98a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.031996s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-541715db-2475-48e5-bd5c-259405a5569e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.033271s] ... 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-149f32d1-eafd-485f-93bb-8a0179caaaa7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.046981s] ... 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-d80141c3-03b5-494f-bb46-4c8ff0c33c1f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_event.TestPost.test_network_port_event_invalid_binding_host_id [0.029579s] ... 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-be721358-d73d-42c3-b47a-96b0c4dcd0ff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.061252s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fd7f037a-8d84-44c3-b383-7d3847a44679
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.030224s] ... 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-83a69603-662b-4148-b709-1b266306facd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.035944s] ... 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-a5e96097-a418-4cff-9743-b0f42d65811f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee [0.056282s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-913df981-d58f-4749-9a24-6add0d767e94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "71fcd880-709a-494e-86a3-ade22736807a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/71fcd880-709a-494e-86a3-ade22736807a", "rel": "self"}, {"href": "http://localhost/nodes/71fcd880-709a-494e-86a3-ade22736807a", "rel": "bookmark"}]}]}
GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0e832494-e656-4c4e-a9c0-2e573443c8d2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "cd79c4a5-9a62-4a70-be6b-42a4650862a9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9", "rel": "self"}, {"href": "http://localhost/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-152ad2a1-aadf-474b-8435-5d9d3433ee09
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "71fcd880-709a-494e-86a3-ade22736807a", "created_at": "2025-03-28T10:18:08.960083+00:00", "updated_at": null, "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/71fcd880-709a-494e-86a3-ade22736807a", "rel": "self"}, {"href": "http://localhost/nodes/71fcd880-709a-494e-86a3-ade22736807a", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/71fcd880-709a-494e-86a3-ade22736807a/ports", "rel": "self"}, {"href": "http://localhost/nodes/71fcd880-709a-494e-86a3-ade22736807a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/71fcd880-709a-494e-86a3-ade22736807a/states", "rel": "self"}, {"href": "http://localhost/nodes/71fcd880-709a-494e-86a3-ade22736807a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/71fcd880-709a-494e-86a3-ade22736807a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/71fcd880-709a-494e-86a3-ade22736807a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/71fcd880-709a-494e-86a3-ade22736807a/volume", "rel": "self"}, {"href": "http://localhost/nodes/71fcd880-709a-494e-
    86a3-ade22736807a/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07e78466-15c5-400b-b9db-502d1a269c44
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "cd79c4a5-9a62-4a70-be6b-42a4650862a9", "created_at": "2025-03-28T10:18:08.961835+00:00", "updated_at": null, "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/cd79c4a5-9a62-4a70-be6b-42a4650862a9", "rel": "self"}, {"href": "http://localhost/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/ports", "rel": "self"}, {"href": "http://localhost/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/states", "rel": "self"}, {"href": "http://localhost/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/volume", "rel": "self"}, {"href": "http://localhost/nodes/cd79c4a5-9a62-4a70-be6b-42a4650862a9/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.032415s] ... 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-961ed63a-3f19-4fcd-a0bd-b6b59b2986c9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.029193s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-52980d70-ee4c-4ec9-86c2-a1b2475adfa7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-1796229e-71d6-4af5-9118-d3a2a46b25ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_event.TestPost.test_network_port_event_invalid_port_id [0.029534s] ... 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-2eb8dbd7-8f09-4bb1-a11e-ae6c55c7dab0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.359671s] ... 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-69c2ad0c-2547-4394-bb44-cafd998bdacd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.028641s] ... 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-cc122a50-1c08-4e0d-8d61-36eea868ac5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.060335s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af4266fa-e075-44c0-8172-b9d20eeae4b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "e8605cf6-1cfa-4fab-a0ef-0f4a5571c367", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367", "rel": "self"}, {"href": "http://localhost/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367", "rel": "bookmark"}]}]}
GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-75115add-2655-4bb9-8b72-b9cd0efa8d41
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "513e058b-d6e5-4764-a9d0-754df320654c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/513e058b-d6e5-4764-a9d0-754df320654c", "rel": "self"}, {"href": "http://localhost/nodes/513e058b-d6e5-4764-a9d0-754df320654c", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32cc9c76-492f-43a7-b372-39c55891e4b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "e8605cf6-1cfa-4fab-a0ef-0f4a5571c367", "created_at": "2025-03-28T10:18:09.045663+00:00", "updated_at": null, "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/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367", "rel": "self"}, {"href": "http://localhost/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/states", "rel": "self"}, {"href": "http://localhost/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8605cf6-1cfa-4fab-a0ef-0f4a5571c367/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK
Content-Type: 
    application/json
Openstack-Request-Id: req-7abda7af-8ade-49bc-8467-dbbd64c04603
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "513e058b-d6e5-4764-a9d0-754df320654c", "created_at": "2025-03-28T10:18:09.047439+00:00", "updated_at": null, "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/513e058b-d6e5-4764-a9d0-754df320654c", "rel": "self"}, {"href": "http://localhost/nodes/513e058b-d6e5-4764-a9d0-754df320654c", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/513e058b-d6e5-4764-a9d0-754df320654c/ports", "rel": "self"}, {"href": "http://localhost/nodes/513e058b-d6e5-4764-a9d0-754df320654c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/513e058b-d6e5-4764-a9d0-754df320654c/states", "rel": "self"}, {"href": "http://localhost/nodes/513e058b-d6e5-4764-a9d0-754df320654c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/513e058b-d6e5-4764-a9d0-754df320654c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/513e058b-d6e5-4764-a9d0-754df320654c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/513e058b-d6e5-4764-a9d0-754df320654c/volume", "rel": "self"}, {"href": "http://localhost/nodes/513e058b-d6e5-4764-a9d0-754df320654c/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.029634s] ... 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-67f54e7c-b3cb-47d0-a846-e707dcac60d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.221325s] ... 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-d7ab478a-6602-4d07-8184-9871fe13e5bd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_provision_with_deploy [0.049754s] ... 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-6ad4f14f-9016-4f1e-93db-a628c10ea26a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.028537s] ... 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-862cddd4-0541-4a32-9246-511597de8312
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.048518s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-876250c0-b6a1-40b0-a602-40bb747bdd45
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-ade19fe8-b9bc-4875-a91c-f6f84056a292
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.041397s] ... 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-973e8a50-cd26-4b46-89bc-78e4688997df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.050440s] ... 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-42fc76e8-e078-4053-b5f2-fefd90779053
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.035502s] ... 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-5ea004df-065b-414d-9cf7-adb53b0b937c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"children": ["35371efe-cd79-4ee7-85da-55aedd777ad6"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.034554s] ... 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-f2ff0057-15cf-4c7e-b1af-bb44627ea6eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.034852s] ... 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-df95e998-50f2-4ae6-a230-6ea578bfbae1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"children": ["b049e4dc-c9f2-4ce8-abe4-b7c2a510448b", "7202df65-c92f-4560-b294-416f30a13665"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.048756s] ... 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-05c01aa5-7946-415f-b8d2-56fc4fbabbff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.087499s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-77983a18-bc38-4b29-ad2d-5237a706d07e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"nodes": [{"uuid": "d0400845-bbe2-45f1-82fa-c1231c427578", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d0400845-bbe2-45f1-82fa-c1231c427578", "rel": "self"}, {"href": "http://localhost/nodes/d0400845-bbe2-45f1-82fa-c1231c427578", "rel": "bookmark"}]}]}
GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-50d5f7ad-05a8-493f-a1be-041185fd4261
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"nodes": [{"uuid": "f9ee8b67-5d16-43ec-90c7-6e1e7dc056ed", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/f9ee8b67-5d16-43ec-90c7-6e1e7dc056ed", "rel": "self"}, {"href": "http://localhost/nodes/f9ee8b67-5d16-43ec-90c7-6e1e7dc056ed", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.042064s] ... 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-c071b76e-0ad5-47af-b723-aa0d232e3d28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.034674s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-533db33e-fb55-4c9d-88ee-4884494f8ae5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.027692s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-ea75f6ae-884f-4393-a103-6d65fe2427e4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.048255s] ... 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-81b7a344-7d92-422e-911c-10ca22759456
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.56
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory [0.042006s] ... 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-23b63dc1-fdd8-4a9c-a64b-04e919f236e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.81
{"inventory": {"cpu": {"count": 1, "model_name": "qemu64", "architecture": "x86_64"}}, "plugin_data": {"disks": [{"name": "/dev/vda"}]}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.047217s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?parent_node=2128eef9-87bf-401c-abc0-445ae10199f9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-097e6446-e2ed-4cb1-9ac9-621e48d5fa2f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": []}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory_no_inventory [0.037656s] ... 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-bf863051-4555-46b0-9200-ec2c7e41922e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.81
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node inventory record for node 1 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.047938s] ... 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-65ff3ea0-e50f-4f35-9afa-4fb06d2934c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.069800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce7d4736-cfd2-4202-8a7c-2025e6d55abb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "a678b678-f293-4ec9-9454-23623a089401", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a678b678-f293-4ec9-9454-23623a089401", "rel": "self"}, {"href": "http://localhost/nodes/a678b678-f293-4ec9-9454-23623a089401", "rel": "bookmark"}]}]}
GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-760bb9ea-aa89-4f3a-ba0b-3fd624185432
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "084ae9be-9d8f-47c3-bb9d-92010f71865c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/084ae9be-9d8f-47c3-bb9d-92010f71865c", "rel": "self"}, {"href": "http://localhost/nodes/084ae9be-9d8f-47c3-bb9d-92010f71865c", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_ignores_parent_if_include_children_indicated [0.034541s] ... 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-632fafca-7ca6-4c52-88d4-86a452779bab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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": "d8893b4e-8eb5-4745-8c56-0ed113350ab0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/d8893b4e-8eb5-4745-8c56-0ed113350ab0", "rel": "self"}, {"href": "http://localhost/nodes/d8893b4e-8eb5-4745-8c56-0ed113350ab0", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.038572s] ... 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-19b4c0e7-eb80-4d08-8621-5f6d42224834
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_old_version [0.060690s] ... 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_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.054908s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?parent_node=1e04db9b-5116-4d2e-9ec6-92bdd908ae69 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3f42961e-75ee-4ec2-97a5-f44be93a7f15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.064600s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3f6c6e26-af3e-4414-9219-64391f2ab2bd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "bc21dcc5-04e6-4bb4-98a2-46960702da78", "created_at": "2025-03-28T10:18:09.342886+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/bc21dcc5-04e6-4bb4-98a2-46960702da78", "rel": "self"}, {"href": "http://localhost/nodes/bc21dcc5-04e6-4bb4-98a2-46960702da78", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bc21dcc5-04e6-4bb4-98a2-46960702da78/ports", "rel": "self"}, {"href": "http://localhost/nodes/bc21dcc5-04e6-4bb4-98a2-46960702da78/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bc21dcc5-04e6-4bb4-98a2-46960702da78/states", "rel": "self"}, {"href": "http://localhost/nodes/bc21dcc5-04e6-4bb4-98a2-46960702da78/states", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e5b59ac7-8b26-46cb-af8e-69da11f4f146
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "730c63d8-22b8-4420-bcf6-3e9aabec352e", "created_at": "2025-03-28T10:18:09.344680+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/730c63d8-22b8-4420-bcf6-3e9aabec352e", "rel": "self"}, {"href": "http://localhost/nodes/730c63d8-22b8-4420-bcf6-3e9aabec352e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/730c63d8-22b8-4420-bcf6-3e9aabec352e/ports", "rel": "self"}, {"href": "http://localhost/nodes/730c63d8-22b8-4420-bcf6-3e9aabec352e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/730c63d8-22b8-4420-bcf6-3e9aabec352e/states", "rel": "self"}, {"href": "http://localhost/nodes/730c63d8-22b8-4420-bcf6-3e9aabec352e/states", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.047823s] ... 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-3f36afd7-09e0-4d10-838c-2e44a126a9a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid configdrive format: it is neither a JSON, nor a URL, nor a base64 string\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.046839s] ... 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-7b66dd55-307f-4255-a2ea-d53ea2e9792f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "lessee": "ae8d29e7-3d8f-4db4-a1e4-5a0093a2654a", "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"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.059105s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-0cccade7-dbfd-4f30-8986-739bd156932d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.079079s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '212144ed-e93c-4ae4-93c0-56681dde93e4', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/212144ed-e93c-4ae4-93c0-56681dde93e4
Openstack-Request-Id: req-90bc08cf-2870-4185-b348-9d48a30a02ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "212144ed-e93c-4ae4-93c0-56681dde93e4", "created_at": "2025-03-28T10:18:09.435419+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/212144ed-e93c-4ae4-93c0-56681dde93e4", "rel": "self"}, {"href": "http://localhost/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/ports", "rel": "self"}, {"href": "http://localhost/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/states", "rel": "self"}, {"href": "http://localhost/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/volume", "rel": "self"}, {"href": "http://localhost/nodes/212144ed-e93c-4ae4-93c0-56681dde93e4/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url [0.046937s] ... 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-f473bd82-926f-4411-9af3-a40085807667
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.051948s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-24f0c3a6-ea5c-4827-a0f3-dcbce2c77ece
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_provision_with_deploy_deploy_steps [0.046119s] ... 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-a89410e7-adc6-4a7f-a450-a3f83fb6684a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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)
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node [0.091271s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '26723ae6-4a6b-463e-bfe3-ff0bd660f583', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/26723ae6-4a6b-463e-bfe3-ff0bd660f583
Openstack-Request-Id: req-98f66512-9e16-4ec7-aa54-3594457dd758
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "26723ae6-4a6b-463e-bfe3-ff0bd660f583", "created_at": "2025-03-28T10:18:09.509107+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/26723ae6-4a6b-463e-bfe3-ff0bd660f583", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/ports", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/states", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/volume", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/volume", "rel": "bookmark"}]}
GET /v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b3509853-8e29-43cd-8201-a7e1ce260f82
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "26723ae6-4a6b-463e-bfe3-ff0bd660f583", "created_at": "2025-03-28T10:18:09.509107+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/26723ae6-4a6b-463e-bfe3-ff0bd660f583", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/ports", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/states", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/volume", "rel": "self"}, {"href": "http://localhost/nodes/26723ae6-4a6b-463e-bfe3-ff0bd660f583/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.042181s] ... 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-7458e497-29dc-4b5e-977b-bfd86d89b2fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.69\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.061273s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ad5fa797-96f1-45e3-8943-12efd8c67dd3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.058094s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '21453650-7ccb-4fef-93b3-25221f1128aa', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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-13db6a7d-3167-4a26-b0ef-9a7d314a25de
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.044747s] ... 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-dc2dfc66-dc72-4531-a199-2de109691bfc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.050025s] ... 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-93324519-3591-41d7-884e-eceba46a8f63
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.040574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-85c77474-075c-4ae3-a1f0-6d3763ef7bf6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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": "2498278e-1c7a-4368-8ec6-17cfbb90cfbb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/2498278e-1c7a-4368-8ec6-17cfbb90cfbb", "rel": "self"}, {"href": "http://localhost/nodes/2498278e-1c7a-4368-8ec6-17cfbb90cfbb", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.036015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e376b504-4e44-401a-bc81-9c0e33f27e71
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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": "6c34689e-28ac-4aa7-b67c-dff738aeb515", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6c34689e-28ac-4aa7-b67c-dff738aeb515", "rel": "self"}, {"href": "http://localhost/nodes/6c34689e-28ac-4aa7-b67c-dff738aeb515", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.102651s] ... 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-050950da-1f59-4494-aedb-02e574e8ebdb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.35
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.034276s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d5de1c16-21ce-40cb-95fb-86ad3ba14f78
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"shard": "foo", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.028807s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-89e53dc8-b1a8-4db3-8d78-227ea3dbeb2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.333765s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-83126d00-ef13-40f8-b966-b57099ad4da5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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": "18d59781-4926-44d0-8344-dffd2dcd27ea", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/18d59781-4926-44d0-8344-dffd2dcd27ea", "rel": "self"}, {"href": "http://localhost/nodes/18d59781-4926-44d0-8344-dffd2dcd27ea", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.027204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-1ebb4390-71a1-47aa-a48b-4eeb8ce4d9c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.079665s] ... 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-e518b785-b074-4c36-9c2d-e3d24c02712c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.
  cls = validator_for(schema)
{0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.062422s] ... 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-9b1f4ee5-05b6-49c5-a3c4-1740fca307b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_uuid: 52:54:00:cf:2d:31\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.045308s] ... 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-f4537d6e-2c18-4a05-9928-29b629f2081a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.239805s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-64de20fc-a5e0-48d5-8be7-7e3e333fa8dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:09.817826+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.045637s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-939fee69-b7b2-4ec9-953f-2be7a712a803
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_sharded [0.116502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3e07b0df-41e5-40af-9cf5-60a9515d883f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-7a5d5afe-0f32-4eb8-9ce6-c92b487122dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "f73c781f-d5f3-456a-8d44-aa82f47eea72", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f73c781f-d5f3-456a-8d44-aa82f47eea72", "rel": "self"}, {"href": "http://localhost/nodes/f73c781f-d5f3-456a-8d44-aa82f47eea72", "rel": "bookmark"}]}, {"uuid": "eedd4d81-947c-407e-b778-a57970f1e7a7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/eedd4d81-947c-407e-b778-a57970f1e7a7", "rel": "self"}, {"href": "http://localhost/nodes/eedd4d81-947c-407e-b778-a57970f1e7a7", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.048665s] ... 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-6633d57e-3a48-4e1b-a6be-a1a18f3e9504
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.044130s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-c397264c-42de-41cb-8b1f-10ac70d1415c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_single_shard_detail [0.050906s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0b631380-2074-47d0-9c4b-654ed4797cb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:09.921630+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.066666s] ... 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-8c3b9f95-8cd2-4933-a176-dcae545e5d34
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict [0.086576s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-813e1662-7e41-4b22-96e9-ade760e0422c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:09.925174+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.036316s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bccb9cf0-ead3-42bc-92f0-7ee405e71e05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:09.960163+00:00", "updated_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_port.TestDelete.test_portgroups_subresource_delete [0.061822s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/25e2c758-aa94-4b7a-adcd-9d8fe86846ed GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e0f53850-ba18-448b-b6db-9b3cbd377596
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPut.test_provision_with_tear_down_undeploy [0.048249s] ... 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-a3874673-c583-499f-90b1-ebd792e573ca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.037704s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8e02e3e6-cfc7-47e0-a648-4890b772dec8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:09.997204+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.040624s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.072383s] ... 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-e7ab693f-77a7-49e9-9a0e-27cf641cadf0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.043339s] ... 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-5f0a6803-6a2f-426f-ae4c-86bf541e0d74
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.044433s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.078121s] ... 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-581bfd0c-f5c4-48dd-a154-e2af475012e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-24c1d68d-b3aa-4989-b494-0b0cd0261fec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.041115s] ... 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-e24d8134-9471-458d-a9c9-9d4939f6a90e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_as_list [0.073838s] ... 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-e1b3d48c-c35a-4db7-878f-0c999d3872b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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 [0.071969s] ... 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-066b87fc-8c76-4aa8-a5c1-056442b97464
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-1e6d5125-b649-4861-b7da-a98f8f1576fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.040471s] ... 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-218f0055-8e68-4ed8-8fa7-e488aa575f5d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"driver_info": {"fake_password": "******"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.082854s] ... 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-9c98bfd4-38b6-42e9-ab3d-5fe321f029b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.055454s] ... 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-bc2c03c0-81e6-4399-ae4b-a64c1c3d2e75
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.167717+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': 'b95b95b5-e33c-4c80-b952-be64cd943494', 'name': '58a26d31-b4be-450a-9b94-4c7e4b4b57d0', '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-498c170a-7fdb-4b15-b304-038295d78af3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis [0.044673s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2ecf7a19-f50b-4f7c-913a-cb0f5a23b8a3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.191103+00:00", "updated_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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.143033s] ... 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-abe440b5-4931-450a-aadb-3af074978809
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.188014+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", "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-1c15e04f-7df3-4ddc-8e87-6ae4e4de8365
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.188014+00:00", "updated_at": null, "automated_clean": true, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "co
    nductor_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, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.050925s] ... 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-c75ce0cb-6565-4f40-b317-4193f6bd93a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.224244+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-e417eb9c-50a1-4dd6-bea6-5f58acc89c47
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.224244+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json [0.048654s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1740e1cd-8d8d-418a-b9ae-38db9213b80b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.237891+00:00", "updated_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": "node.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.103676s] ... 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-643048af-39e5-4ce7-ade7-7de15486b6ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.064942s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'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-09fa7feb-ba11-4124-a26d-54dad2a83714
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_portgroup.TestPost.test_create_portgroup_default_mode [0.062658s] ... 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-106a25f4-710f-48b5-88ee-eec3385a631f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.295052+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.063949s] ... 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-9e5de29f-1dca-405e-8ef2-dd0e8d6b6a46
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.282840+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.039060s] ... 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-baab6702-de10-432c-a121-e9ee05dad762
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.051258s] ... 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-6d619961-4714-4e8d-848e-be8a35cfc56c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.338994+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-5ad0de33-353c-4ddd-8e37-6c846d8fed47
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.338994+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.040446s] ... 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-1beb9f44-dc60-4aeb-bb79-a6279126e7bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.039169s] ... 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-409e30bb-d6e9-4558-81ec-6a778fe44941
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo [0.034285s] ... 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-9c6032f2-bd62-44d9-8b51-7b6d78aaf854
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value 'boo!', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.110045s] ... 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-f43716a4-e841-45c0-a131-7f90d90c964d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-360e0c16-9bc6-49c6-887f-d28b1a4b894b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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': 'aa825d22-9917-4f54-857a-7a08ea710d3c', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/aa825d22-9917-4f54-857a-7a08ea710d3c
Openstack-Request-Id: req-650f8996-3fba-4d50-85f2-dcc5415d7dae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "aa825d22-9917-4f54-857a-7a08ea710d3c", "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/aa825d22-9917-4f54-857a-7a08ea710d3c", "rel": "self"}, {"href": "http://localhost/nodes/aa825d22-9917-4f54-857a-7a08ea710d3c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/aa825d22-9917-4f54-857a-7a08ea710d3c/ports", "rel": "self"}, {"href": "http://localhost/nodes/aa825d22-9917-4f54-857a-7a08ea710d3c/ports", "rel": "bookmark"}]}
GET /v1/nodes/aa825d22-9917-4f54-857a-7a08ea710d3c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c07724eb-69b9-450b-bbd2-bfbe8db67f67
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "aa825d22-9917-4f54-857a-7a08ea710d3c", "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/aa825d22-9917-4f54-857a-7a08ea710d3c", "rel": "self"}, {"href": "http://localhost/nodes/aa825d22-9917-4f54-857a-7a08ea710d3c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/aa825d22-9917-4f54-857a-7a08ea710d3c/ports", "rel": "self"}, {"href": "http://localhost/nodes/aa825d22-9917-4f54-857a-7a08ea710d3c/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.107617s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/node.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b72434fe-1241-4168-b0a5-df5b2395fbf1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.385446+00:00", "updated_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": "node.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr [0.036043s] ... 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-71212c0d-1bad-497c-b619-da7d648a8ff3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.053021s] ... 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/679c3598-aa0c-4bf6-bcfe-f73b62d980a1
Openstack-Request-Id: req-334cc73b-7d72-4b13-b12a-d93bb9802b91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "679c3598-aa0c-4bf6-bcfe-f73b62d980a1", "created_at": "2025-03-28T10:18:10.432423+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/679c3598-aa0c-4bf6-bcfe-f73b62d980a1", "rel": "self"}, {"href": "http://localhost/portgroups/679c3598-aa0c-4bf6-bcfe-f73b62d980a1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/679c3598-aa0c-4bf6-bcfe-f73b62d980a1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/679c3598-aa0c-4bf6-bcfe-f73b62d980a1/ports", "rel": "bookmark"}]}
GET /v1/portgroups/679c3598-aa0c-4bf6-bcfe-f73b62d980a1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b561751d-83e7-43c7-bbe6-ed92268bfdf9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "679c3598-aa0c-4bf6-bcfe-f73b62d980a1", "created_at": "2025-03-28T10:18:10.432423+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/679c3598-aa0c-4bf6-bcfe-f73b62d980a1", "rel": "self"}, {"href": "http://localhost/portgroups/679c3598-aa0c-4bf6-bcfe-f73b62d980a1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/679c3598-aa0c-4bf6-bcfe-f73b62d980a1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/679c3598-aa0c-4bf6-bcfe-f73b62d980a1/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.060237s] ... 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-7cf7c77a-acba-49f7-9332-45211ddb0e03
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.035823s] ... 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-add17c4f-9121-47d1-94d3-cefa2ce20613
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret [0.066375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b11753ef-1a2f-44f7-9808-0326e91b5a88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.482191+00:00", "updated_at": null, "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": "******"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver [0.086603s] ... 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-d9308372-d39d-4ba1-90a5-9651cfee8d13
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.038615s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1fe3ae2f-aad0-417a-9c8a-bc9202bbcb67
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.521569+00:00", "updated_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": "test.1", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.083419s] ... 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-6ca227a6-58fb-4eb0-96ed-dc931673631a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.11
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.534893+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-272e2903-3bb0-4d44-a4ed-71a18c8fde4a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.534893+00:00", "updated_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_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.072658s] ... 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-ae78b2a3-23b7-445d-84c8-b0e1bb53024b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.039904s] ... 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-1ee3b593-0d65-4f34-84ae-ee597994c811
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"owner": "fred", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.083724s] ... 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-5ddac9d2-30bb-4770-8b1c-8e6bbb1ddce9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.039284s] ... 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-3ea2e1f9-278f-4ea8-bc8b-afce7d598bff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"protected": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.072748s] ... 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-d5813a99-b9e1-427b-8a58-7ffe6b9e58af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPost.test_create_node_default_state_none [0.087959s] ... 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-33188071-4693-40a4-87d1-97008f471baa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.617674+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-768b677a-7719-486f-8eca-bf20e4a62589
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.617674+00:00", "updated_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-9f480811-c53c-458f-a24f-05b8bda17496
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.617674+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "i
    nspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields [0.039015s] ... 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-7b72a871-d67c-48f1-bb42-b5492dc1abfd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.070444s] ... 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-535b9023-6fa3-42ae-966d-56fede89bf0b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.038640s] ... 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-e3be8594-cde0-4eab-a715-7cd05a59b684
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.081488s] ... 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-26c5255f-c251-4543-b9cc-d1d53b287e18
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.703317+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": "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-9e51a641-3b59-4101-b1dc-92938f82d2e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.703317+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clea
    n_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.054785s] ... 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-3d652afd-be7e-4423-b775-6424001af0aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781
    234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.079030s] ... 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-e88fbbd0-0ce3-4f10-814a-7895562eec5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.103176s] ... 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-0f9889cd-62c7-42f3-8862-b321b84e38f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-23918fae-1aeb-4773-ad90-394fd6f0d633
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.233215s] ... 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-39e4cb63-5842-4f3c-8b72-54d28cc67c73
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.079109s] ... 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-3e4e2c4e-2db1-4786-a3cd-ba7dc73b1538
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.843020+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-bfced439-db4b-4a00-9a8f-c1186e5e95b8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.843020+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.063385s] ... 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-984eb2de-5065-4f73-a9bd-f69d136d79bc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"supported_boot_devices": ["pxe"]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two [0.034350s] ... 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-4505bc64-0829-4fcd-9009-da6244c18655
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_supported_boot_devices_by_name [0.040012s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f562264f-992d-4b88-8e61-eb36cc40f238
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"supported_boot_devices": ["pxe"]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.112371s] ... 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-8c62385d-8ce9-4add-9b49-8a79a251c3ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.899367+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "802.3ad", "name": "fooname", "properties": {"bond_prop": 123}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.038153s] ... 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-1fbcce0b-b5c9-4aba-8302-3f394a0bb09f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.036327s] ... 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-824900eb-a231-4e10-90ff-83836cafab8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_portgroup.TestPost.test_create_portgroup_name_invalid [0.035876s] ... 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-819e7d8d-c55a-433f-b829-f911f5e54a39
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_default_conductor_group [0.102690s] ... 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-60188eae-0817-4831-96de-2bb44db51426
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.945489+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-ab2b6210-046c-4802-a064-322e0af70103
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:10.945489+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "mouse", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive"
    : "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators [0.036337s] ... 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-7a40e719-086c-4d7a-ae8d-720bf5da3c93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.047318s] ... 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-25917dcf-1ae8-49d5-a608-450f08ee4dbe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.994186+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-6f053611-4560-41b2-98ae-af25ceabb80a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:10.994186+00:00", "updated_at": null, "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "foo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.079404s] ... 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-717c687f-b075-4768-a1cb-d223e7f6e492
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported [0.042475s] ... 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-4007332a-4101-41ff-9c96-163c9e83812e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.081172s] ... 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-396ef226-00c5-4cc9-a21d-8a79f606d994
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-9c0c1016-6dc7-4c5e-b26f-e30dbcf0fc20
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_portgroup.TestPost.test_create_portgroup_no_address [0.051797s] ... 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-4b3f60b5-d1de-412d-916b-122640d36d9e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:11.043523+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-a4404116-20dc-4dab-a1ae-b190383cfd29
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:11.043523+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.057164s] ... 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-f3f3a466-3c44-46ab-9816-cf518d67e0bc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.037374s] ... 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-57578ce5-2c14-4594-9cd9-3abd74d6b6f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.051031s] ... 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-d4c543bd-f82e-433d-a48d-c41dec36e7c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service [0.050710s] ... 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-571793be-760a-429e-be03-c9d9e56af8d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_get_traits_fields [0.047419s] ... 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-83d2aa6a-0567-414a-a87a-1a54190792b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.081560s] ... 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-3613c6db-7c09-4b25-83f0-a57d1e6fb8ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.109251+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-5420d5de-9c27-46ad-99e2-d67a93f8931f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.109251+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "class2", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-0
    3f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.041238s] ... 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-c1b76a23-5a0a-4995-ab77-f00b55c6c2f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.037739s] ... 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-ac85a93a-ae49-4d97-aea4-4c0ceecebe64
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.054650s] ... 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-28c12291-62f5-4676-9f03-5c6062efa579
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.87
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"service_steps\\\" is required when setting target provision state to service\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.050451s] ... 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-5b04776a-17a5-417e-b28d-cb123a85c0e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-2a1ddcff-eedb-4872-b948-4b94189bcaf1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.046740s] ... 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-70eb0994-2a7e-42c0-9da0-87572e166470
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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": "c71294a0-cca9-4b05-83de-bb38eb1b9ed1"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.088029s] ... 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-7cdf7461-0ee7-42cf-8b27-16385c9a2c04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-18790283-677b-4b6c-8aa7-63318a352019
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_in
    terface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.052129s] ... 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-916631cf-eab5-42c6-981c-d2e7229ca766
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.053757s] ... 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-bf22481e-8aca-4555-a250-08ed8851a50e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:11.241068+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-203fed19-7202-4f67-9148-671b31d69835
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:11.241068+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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.050652s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb4b1bbc-4201-48e7-9121-31051b935d29
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.240460+00:00", "updated_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-7d337b79-2128-4b62-a68e-26a35fbc7278
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.7
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.240460+00:00", "updated_at": null, "clean_step": {"foo": "bar"}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.043247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content
Openstack-Request-Id: req-ff330068-acd2-4a2c-af20-b32d024ad916
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.069246s] ... 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-c0c969a7-33a2-4c17-b0f7-f48beca28cb6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.037975s] ... 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-271b5bcd-5d11-493d-83b9-dcc046027fb6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.048107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7548f3e2-a2c5-4d07-ba11-ed3b5527f487
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.290872+00:00", "updated_at": null, "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-bec21ef0-249b-435e-9d70-6acc7f6c7b17
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.290872+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "useful piece", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, 
    "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.046577s] ... 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-0fcd9b91-48ea-413d-8759-765febc9c11b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.044250s] ... 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-87494386-7fae-4236-9988-b4d4421b37db
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:11.337117+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.TestPost.test_create_node_invalid_chassis [0.058755s] ... 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-6ff09b1d-5cde-4be5-8bef-2dd443469837
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 0 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.053585s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a0a6ea64-8d62-436e-bfb0-85f9a7cb0215
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.340760+00:00", "updated_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-0be129bb-5cb0-4d30-9ef0-71dbfc1936e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.3
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.340760+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_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.027032s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.049145s] ... 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-7536c8ab-ad2f-4052-a82e-b897264e494f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.019432s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.063450s] ... 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-67afeeba-a159-41c2-95c5-b476eb95d720
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.020419s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.042474s] ... 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-c3055ec2-493f-404d-9347-cb83148c4ab0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.019216s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.054249s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4378d7c0-e64d-40cc-b94a-5888d9c8c2df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.402009+00:00", "updated_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-71e9dd2d-8b1f-4734-a9b5-3439398bc2a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.402009+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": "2015-03-18T19:20:00+00:00", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.018224s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.017707s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.063692s] ... 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-31e89dfd-b2c9-4291-bb91-66d4a5466eed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.046311s] ... 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-10dc6e8f-7467-4e7f-a9ff-1c2d202885f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.018416s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.021265s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.039671s] ... 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-640d7798-751e-4af9-9c99-2de2e75bf433
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.019666s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.062262s] ... 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-132966b0-5c57-4040-9005-e4ae3a73eb5e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.017776s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.093212s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4660d963-0ea6-412c-9392-70c055958c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.489475+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-4e1dd25b-b391-4e66-ae25-78a449568e8c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.489475+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"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.045094s] ... 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-bc925abd-b1ea-4592-a079-d24e07cc327d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume.TestGetVolume.test_get_volume [0.045752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c261bcf0-55fe-4882-9773-5fbc18ce3851
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-04bddd82-ab62-4c5d-9549-cea8a1e31a1b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-6713d81f-7ae0-4fe9-854b-0370ecf221cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-38c053e3-1f26-417e-88d2-142467aa5f24
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": []}
GET /volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f7978c82-7402-42d4-a571-9ffef9fbdf65
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": []}
GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0b95a23e-9170-445d-94e8-d98b3db7c40a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": []}
GET /volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb52cb81-e6d5-48f3-9f30-588be6ad414a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.051979s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3595067-9928-4ece-ac93-f29219925e1a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.580132+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-e4f32b6a-225b-4476-acba-bca55c427f7f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.580132+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.043912s] ... 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-3978e633-24b2-4c95-8133-fd5a99c272f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: enabled\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.023137s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/ WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-70ecf064-b1bd-4aa1-a9fa-f9cdb5d82628
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.047273s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a217be92-0ebd-4e86-a90f-52480ac916ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.629016+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-a05d5aaa-8658-47c0-bacc-d8f969ce6303
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.629016+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.045929s] ... 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-cec45b75-0cee-4fed-8229-6741ae46533e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_connector.TestPost.test_create_volume_connector [0.049964s] ... 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-773a1b13-161f-423d-b2cd-d04bbc36cf29
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-5c765140-a767-4eef-bea6-435eb70a5ab2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.142951s] ... 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-061ff3ae-40a6-46b4-adff-352dff689555
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.645775+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, "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-e8647a5b-4eff-402c-9e36-3721bda805e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.645775+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "c
    onductor_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, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "project", "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.048181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-df4407bb-bbdb-4e0d-8a4e-45fcfcc60f75
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.678643+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-beaf4db8-cc00-487b-ab21-5067fc1e24ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.678643+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "foo", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.048697s] ... 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-b3c10f64-5a8c-4746-b9e4-3d37f2977b00
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.047875s] ... 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-9f7a01fd-ac7e-4385-81f8-b51d6bd50ff8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:11.701485+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-0c40be82-dedc-4ea2-ab78-c99e06edbea3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:11.701485+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.049205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3a8a0d9e-e34e-441c-8525-c850a43c278d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.728092+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-d96835e3-ee14-4bc9-8c62-e5666192404a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.728092+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"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.036183s] ... 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-d893c82c-ab5a-42f7-90eb-6db5acff2db8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.047317s] ... 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-ca8172c6-531d-4171-8e0d-78a631d4a906
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.040586s] ... 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-2ece2143-abec-473e-86e3-fa3d7b153381
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_create_node_lessee_old_api_version [0.110699s] ... 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-ca675903-3e14-476c-8b59-2e34d38d8ccc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.066889s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-63b659ee-8e85-46eb-8ece-fc2b8d0d58a3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.789597+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-7829c123-2631-4c70-9d32-dccd4f03ab14
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:11.789597+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_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.073257s] ... 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/c41ec68c-4dc5-43c1-a4f7-678061ec57ff
Openstack-Request-Id: req-58c7e2d4-ca53-4a1a-aa71-fd86371877c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "c41ec68c-4dc5-43c1-a4f7-678061ec57ff", "created_at": "2025-03-28T10:18:11.800246+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c41ec68c-4dc5-43c1-a4f7-678061ec57ff", "rel": "self"}, {"href": "http://localhost/volume/connectors/c41ec68c-4dc5-43c1-a4f7-678061ec57ff", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/c41ec68c-4dc5-43c1-a4f7-678061ec57ff WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-02dd267b-92bd-4cd7-9201-10d0afa3cf90
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "c41ec68c-4dc5-43c1-a4f7-678061ec57ff", "created_at": "2025-03-28T10:18:11.800246+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c41ec68c-4dc5-43c1-a4f7-678061ec57ff", "rel": "self"}, {"href": "http://localhost/volume/connectors/c41ec68c-4dc5-43c1-a4f7-678061ec57ff", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value [0.046452s] ... 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-7ee30a09-0cc8-4c40-b3c3-dba1f1edee97
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"error\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.033460s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.051680s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-02302b72-e29a-4fba-ba12-17170d4ff0ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.847709+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-bf4aaa21-0fd7-44b6-ac8a-a9da9935a2e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:11.847709+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "b
    ookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.077074s] ... 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-adfe41f7-c854-4ad0-9a72-b68ec856e3dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.047545s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f03420a3-0c69-421b-88c1-c052c9fd75a8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "2ac88a65-fd16-4c31-9522-cb8742c01dec", "created_at": "2025-03-28T10:18:11.896522+00:00", "updated_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/2ac88a65-fd16-4c31-9522-cb8742c01dec", "rel": "self"}, {"href": "http://localhost/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec/ports", "rel": "self"}, {"href": "http://localhost/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec/ports", "rel": "bookmark"}]}
GET /v1/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-72b66008-7932-42db-bc1d-9a0423334cd6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "2ac88a65-fd16-4c31-9522-cb8742c01dec", "created_at": "2025-03-28T10:18:11.896522+00:00", "updated_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/2ac88a65-fd16-4c31-9522-cb8742c01dec", "rel": "self"}, {"href": "http://localhost/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec/ports", "rel": "self"}, {"href": "http://localhost/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec/ports", "rel": "bookmark"}]}
GET /nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a8226412-a3e2-429b-862c-1735e42e0bfa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "2ac88a65-fd16-4c31-9522-cb8742c01dec", "created_at": "2025-03-28T10:18:11.896522+00:00", "updated_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/2ac88a65-fd16-4c31-9522-cb8742c01dec", "rel": "self"}, {"href": "http://localhost/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec/ports", "rel": "self"}, {"href": "http://localhost/nodes/2ac88a65-fd16-4c31-9522-cb8742c01dec/ports", "rel
    ": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.080074s] ... 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-e2f0b5f6-24f7-4278-ae8d-a99487b1ac7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.055366s] ... 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-40e8efeb-c4a7-4c06-b835-48c15e18e465
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.068296s] ... 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-f7613517-d25b-48c7-9488-69ac58a240ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.059358s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bba631df-b780-4523-88bf-7afb21343b8a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "ba2a4a26-23f7-460b-a493-4352ce8367c3", "created_at": "2025-03-28T10:18:11.947749+00:00", "updated_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/ba2a4a26-23f7-460b-a493-4352ce8367c3", "rel": "self"}, {"href": "http://foo/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3/ports", "rel": "self"}, {"href": "http://foo/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3/ports", "rel": "bookmark"}]}
GET /v1/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8ca53ce6-6cbf-4062-bac5-dd2d1e589bf6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "ba2a4a26-23f7-460b-a493-4352ce8367c3", "created_at": "2025-03-28T10:18:11.947749+00:00", "updated_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/ba2a4a26-23f7-460b-a493-4352ce8367c3", "rel": "self"}, {"href": "http://foo/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3/ports", "rel": "self"}, {"href": "http://foo/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3/ports", "rel": "bookmark"}]}
GET /nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51caafec-27ad-4cb2-84f7-4717db49d662
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "ba2a4a26-23f7-460b-a493-4352ce8367c3", "created_at": "2025-03-28T10:18:11.947749+00:00", "updated_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/ba2a4a26-23f7-460b-a493-4352ce8367c3", "rel": "self"}, {"href": "http://foo/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3/ports", "rel": "self"}, {"href": "http://foo/nodes/ba2a4a26-23f7-460b-a493-4352ce8367c3/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.065879s] ... 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-11c81fa9-9ce8-401d-92fe-808b6a1b8cc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.072298s] ... 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-69a0be07-ae76-4b35-8d43-aaaca88ba6ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.086998s] ... 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-f5c97723-60d6-45ef-8971-894c6654debd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.011355+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, "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-96e038f4-99f2-462f-8d00-6ef9d9e11259
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.011355+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, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.044430s] ... 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-17495e70-791f-4622-bbbe-dc38384831e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.056352s] ... 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-bcf58e33-49dc-4f50-a077-793a85705d7f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.060353s] ... 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-ca92a5a8-c0a4-4e61-9c3e-5c8345d7d3d7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.036105s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted
Openstack-Request-Id: req-3f0b8081-0dec-495d-ad31-e2d2d436a8cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.119771s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fdab0c9b-5545-4977-93a2-14002a53b7a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "24744fa1-e5a2-4398-94af-8f792292aec3", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/24744fa1-e5a2-4398-94af-8f792292aec3", "rel": "self"}, {"href": "http://localhost/nodes/24744fa1-e5a2-4398-94af-8f792292aec3", "rel": "bookmark"}]}, {"uuid": "c3bbd33d-dccf-41f5-96fe-09103dd6eac5", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c3bbd33d-dccf-41f5-96fe-09103dd6eac5", "rel": "self"}, {"href": "http://localhost/nodes/c3bbd33d-dccf-41f5-96fe-09103dd6eac5", "rel": "bookmark"}]}]}
GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0a6f0e21-0e17-4d53-8413-b515c08d4206
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "a43729c5-dd22-4e07-9824-5fdc074c3a6c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a43729c5-dd22-4e07-9824-5fdc074c3a6c", "rel": "self"}, {"href": "http://localhost/nodes/a43729c5-dd22-4e07-9824-5fdc074c3a6c", "rel": "bookmark"}]}, {"uuid": "47a7b5bb-bae3-4fa8-a093-2ae845c64623", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/47a7b5bb-bae3-4fa8-a093-2ae845c64623", "rel": "self"}, {"href": "http://localhost/nodes/47a7b5bb-bae3-4fa8-a093-2ae845c64623", "rel": "bookmark"}]}, {"uuid": "814fc34f-f4c1-4dad-b3aa-7b20dd6dc21a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/814fc34f-f4c1-4dad-b3aa-7b20dd6dc21a", "rel": "self"}, {"href": "http://localhost/nodes/814fc34f-f4c1-4dad-b3aa-7b20dd6dc21a", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.041041s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted
Openstack-Request-Id: req-365dd790-6f6f-403d-bf8e-b5f3a3b85d16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.037948s] ... 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-d1bad7a6-8ecd-4b26-8424-ddf04577e3b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestListNodes.test_maintenance_nodes_associated [0.141666s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c890b5d6-1f4d-42fc-bdbf-dfa3beb80e35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "bfe25d0a-e97a-4941-a9ea-75bc4cc51a63", "instance_uuid": "80f75859-823e-4bf2-82d3-5d653c69b9e0", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/bfe25d0a-e97a-4941-a9ea-75bc4cc51a63", "rel": "self"}, {"href": "http://localhost/nodes/bfe25d0a-e97a-4941-a9ea-75bc4cc51a63", "rel": "bookmark"}]}, {"uuid": "db6b6737-5ee8-4916-9bfa-53aba7099cbb", "instance_uuid": "0632e70b-5917-4de2-a47b-d5b2a35c3bb3", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/db6b6737-5ee8-4916-9bfa-53aba7099cbb", "rel": "self"}, {"href": "http://localhost/nodes/db6b6737-5ee8-4916-9bfa-53aba7099cbb", "rel": "bookmark"}]}, {"uuid": "52445bdd-da4d-4daf-b030-202cf93c05c1", "instance_uuid": "bc87ccd8-90c9-4fcb-88d4-c6483d1518f3", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/52445bdd-da4d-4daf-b030-202cf93c05c1", "rel": "self"}, {"href": "http://localhost/nodes/52445bdd-da4d-4daf-b030-202cf93c05c1", "rel": "bookmark"}]}, {"uuid": "9eb814ca-8652-4cf2-8862-f38d4695e214", "instance_uuid": "7fa360ff-6b30-4f03-b307-3aae55523d33", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9eb814ca-8652-4cf2-8862-f38d4695e214", "rel": "self"}, {"href": "http://localhost/nodes/9eb814ca-8652-4cf2-8862-f38d4695e214", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7c6c1df1-096d-4b82-a486-ff0fa596adae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "29d3ce4e-8eb9-44ee-88eb-b20a842f3635", "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-d25e223e-55b1-46f6-b0c0-b56fe25a3572
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "29d3ce4e-8eb9-44ee-88eb-b20a842f3635", "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.063512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted
Openstack-Request-Id: req-1bb5c7e1-e7df-4ebe-bc2f-cd6020a2603b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.062743s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c8a5a080-82f4-4f53-9eb7-b24f970b049d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid maintenance: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.076361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted
Openstack-Request-Id: req-844bf839-7464-4298-b55b-5dd051071ff2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.054387s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-193ab2c9-e7f8-4562-8347-22f133701488
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "13373dc9-2b32-4432-9810-94a717ccfe9f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/13373dc9-2b32-4432-9810-94a717ccfe9f", "rel": "self"}, {"href": "http://localhost/nodes/13373dc9-2b32-4432-9810-94a717ccfe9f", "rel": "bookmark"}]}, {"uuid": "82157e92-671f-43be-ac0b-9d590efcf1b4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/82157e92-671f-43be-ac0b-9d590efcf1b4", "rel": "self"}, {"href": "http://localhost/nodes/82157e92-671f-43be-ac0b-9d590efcf1b4", "rel": "bookmark"}]}, {"uuid": "e4feaa7e-e197-467c-af15-f1e55e72a11e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e4feaa7e-e197-467c-af15-f1e55e72a11e", "rel": "self"}, {"href": "http://localhost/nodes/e4feaa7e-e197-467c-af15-f1e55e72a11e", "rel": "bookmark"}]}, {"uuid": "d8ce3e8f-0120-4c42-a77a-dfa231b11f49", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d8ce3e8f-0120-4c42-a77a-dfa231b11f49", "rel": "self"}, {"href": "http://localhost/nodes/d8ce3e8f-0120-4c42-a77a-dfa231b11f49", "rel": "bookmark"}]}, {"uuid": "6d7ec16f-619c-4e93-81b3-2da7a6f4b188", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/6d7ec16f-619c-4e93-81b3-2da7a6f4b188", "rel": "self"}, {"href": "http://localhost/nodes/6d7ec16f-619c-4e93-81b3-2da7a6f4b188", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.061368s] ... 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-72a646fb-549d-4bf5-b026-f9506544336c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden [0.035139s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-03ae94c1-a5ad-461a-8e59-b4e4c77d86da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.314059s] ... 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-28bcbd45-c245-4c40-ae22-ec2fcc3e2170
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.390451+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.325574s] ... 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-dd3c2019-12c0-4404-9ad0-8d72f264c488
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.057513s] ... 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-470e8c8f-56b3-4047-9bd2-c1651c3bdb4f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.84
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.032908s] ... 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-1f5dc4c5-818d-4731-88e6-bc853c401e60
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.057394s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8783f1ae-5189-46ad-9107-8392914ee10c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"nodes": [{"uuid": "24420e87-52d0-4609-a6f1-1e86d5d3a686", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/24420e87-52d0-4609-a6f1-1e86d5d3a686", "rel": "self"}, {"href": "http://localhost/nodes/24420e87-52d0-4609-a6f1-1e86d5d3a686", "rel": "bookmark"}]}, {"uuid": "a849231c-1bb2-428a-837c-d50d89ceb284", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/a849231c-1bb2-428a-837c-d50d89ceb284", "rel": "self"}, {"href": "http://localhost/nodes/a849231c-1bb2-428a-837c-d50d89ceb284", "rel": "bookmark"}]}, {"uuid": "f1e15f46-ea88-40bb-b05b-f46a50594245", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/f1e15f46-ea88-40bb-b05b-f46a50594245", "rel": "self"}, {"href": "http://localhost/nodes/f1e15f46-ea88-40bb-b05b-f46a50594245", "rel": "bookmark"}]}, {"uuid": "9c23556e-ae69-4b62-971c-30776cfc2866", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/9c23556e-ae69-4b62-971c-30776cfc2866", "rel": "self"}, {"href": "http://localhost/nodes/9c23556e-ae69-4b62-971c-30776cfc2866", "rel": "bookmark"}]}, {"uuid": "ed501d19-0919-4f8a-9639-2329c6854c6b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/ed501d19-0919-4f8a-9639-2329c6854c6b", "rel": "self"}, {"href": "http://localhost/nodes/ed501d19-0919-4f8a-9639-2329c6854c6b", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.031273s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f7edc736-c487-4e71-949e-4b43f8ab5eb9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.053876s] ... 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-2a71cbd7-c082-4401-83a8-a8bf55ab13e4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.049095s] ... 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-f1a368db-2d9d-4aaa-b349-e2d800e87eed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:12.483425+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': '4e91aec0-e960-4030-98ef-f578ddcf3094', '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-e0644ee1-27c0-45a5-bb37-ee1a89a6e140
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.113645s] ... 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-56654d46-d463-429e-938e-6df543507a11
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.499069+00:00", "updated_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-02782785-de82-4435-824f-a82a33a3b42e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.499069+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.047747s] ... 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-7cc3ce73-db5e-497e-b2a7-e5e85b9199c0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:12.533426+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-2445a465-215e-425f-8fd7-a3b1eb9cc5da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:12.533426+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"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.055587s] ... 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-7311767a-d943-495b-b435-3b23d59d7e55
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 'driver' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden [0.104242s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a0cf874-5f0f-4f9b-ac03-8bce597dd42f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "fce3d0c7-91a5-4313-8394-a62047b2969f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/fce3d0c7-91a5-4313-8394-a62047b2969f", "rel": "self"}, {"href": "http://localhost/nodes/fce3d0c7-91a5-4313-8394-a62047b2969f", "rel": "bookmark"}]}, {"uuid": "babc6d4b-7e5b-4378-aea8-b1103b355006", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/babc6d4b-7e5b-4378-aea8-b1103b355006", "rel": "self"}, {"href": "http://localhost/nodes/babc6d4b-7e5b-4378-aea8-b1103b355006", "rel": "bookmark"}]}, {"uuid": "70548d79-5e6e-45c1-95d5-8c2e579607c2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/70548d79-5e6e-45c1-95d5-8c2e579607c2", "rel": "self"}, {"href": "http://localhost/nodes/70548d79-5e6e-45c1-95d5-8c2e579607c2", "rel": "bookmark"}]}, {"uuid": "d8115347-8605-421d-ab38-d06006f6acfa", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d8115347-8605-421d-ab38-d06006f6acfa", "rel": "self"}, {"href": "http://localhost/nodes/d8115347-8605-421d-ab38-d06006f6acfa", "rel": "bookmark"}]}, {"uuid": "7188f6e3-c9b4-428a-aa32-703d8b3d8492", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/7188f6e3-c9b4-428a-aa32-703d8b3d8492", "rel": "self"}, {"href": "http://localhost/nodes/7188f6e3-c9b4-428a-aa32-703d8b3d8492", "rel": "bookmark"}]}, {"uuid": "e9524a46-2263-4295-95f2-96ca62f80c3c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e9524a46-2263-4295-95f2-96ca62f80c3c", "rel": "self"}, {"href": "http://localhost/nodes/e9524a46-2263-4295-95f2-96ca62f80c3c", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.042398s] ... 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-7fb14ff3-b77d-4abd-848f-14501b8ac183
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:12.583723+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.045678s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-62e708b4-bdb7-443f-b587-3761879c40e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "63fd84c0-0cc0-4ebf-98a3-0fbe95d3dbdd", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/63fd84c0-0cc0-4ebf-98a3-0fbe95d3dbdd", "rel": "self"}, {"href": "http://localhost/volume/targets/63fd84c0-0cc0-4ebf-98a3-0fbe95d3dbdd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b99d495d-6fdf-46c8-a887-b67c4e10e11c", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b99d495d-6fdf-46c8-a887-b67c4e10e11c", "rel": "self"}, {"href": "http://localhost/volume/targets/b99d495d-6fdf-46c8-a887-b67c4e10e11c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6423f7ba-5a39-43fe-8744-f1ea83e8983c", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6423f7ba-5a39-43fe-8744-f1ea83e8983c", "rel": "self"}, {"href": "http://localhost/volume/targets/6423f7ba-5a39-43fe-8744-f1ea83e8983c", "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=6423f7ba-5a39-43fe-8744-f1ea83e8983c"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.062018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5a9177b6-abce-40d5-8db3-3b3b1201e14f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.086114s] ... 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-b18249a8-18a5-4ff2-bffd-99dcf7d79f1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.637649+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, "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-b95f731b-1a50-4ffa-8fb8-d9951394ceb1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.637649+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "cond
    uctor_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, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "cowsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.041760s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-273e6268-4ce0-4aeb-9dde-c8d669eba8e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "6e629427-c7cf-4857-a6d6-a54b71d07eeb", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/6e629427-c7cf-4857-a6d6-a54b71d07eeb", "rel": "self"}, {"href": "http://localhost/volume/targets/6e629427-c7cf-4857-a6d6-a54b71d07eeb", "rel": "bookmark"}]}, {"uuid": "090d2183-801a-43d3-ac97-3a01763ce70d", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/090d2183-801a-43d3-ac97-3a01763ce70d", "rel": "self"}, {"href": "http://localhost/volume/targets/090d2183-801a-43d3-ac97-3a01763ce70d", "rel": "bookmark"}]}, {"uuid": "dd4ae943-8483-49c7-9ae0-8d1e021b753e", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/dd4ae943-8483-49c7-9ae0-8d1e021b753e", "rel": "self"}, {"href": "http://localhost/volume/targets/dd4ae943-8483-49c7-9ae0-8d1e021b753e", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=dd4ae943-8483-49c7-9ae0-8d1e021b753e"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.057857s] ... 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-fa2efd17-5d29-4833-a1e4-c8c03036274d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_target.TestListVolumeTargets.test_collection_links_default_limit [0.041723s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-544fe370-5082-48b5-8124-90fa4863eb52
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "9a11ac98-094c-4320-8c46-87b7306e35f0", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9a11ac98-094c-4320-8c46-87b7306e35f0", "rel": "self"}, {"href": "http://localhost/volume/targets/9a11ac98-094c-4320-8c46-87b7306e35f0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "2881669b-5b9d-41e1-8975-8424e656ff3c", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2881669b-5b9d-41e1-8975-8424e656ff3c", "rel": "self"}, {"href": "http://localhost/volume/targets/2881669b-5b9d-41e1-8975-8424e656ff3c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b8b0c553-30f9-4bfe-a63b-ea7c978347c3", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b8b0c553-30f9-4bfe-a63b-ea7c978347c3", "rel": "self"}, {"href": "http://localhost/volume/targets/b8b0c553-30f9-4bfe-a63b-ea7c978347c3", "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=b8b0c553-30f9-4bfe-a63b-ea7c978347c3"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.090768s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1b566e1-5c4d-438f-af0d-ad56f1b5075e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.694095+00:00", "updated_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-1c6cf8e2-4115-4189-802d-6d7738b93752
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.2
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.694095+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.262406s] ... 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-b72c33e8-2d5f-4703-b47c-8d1d98eeea06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.84
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.043316s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eeedfc7f-e307-4d12-b823-f77c5f899c42
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "199fb9d4-30cc-4a3f-877a-18e2c2909e25", "created_at": "2025-03-28T10:18:12.748092+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/199fb9d4-30cc-4a3f-877a-18e2c2909e25", "rel": "self"}, {"href": "http://localhost/volume/targets/199fb9d4-30cc-4a3f-877a-18e2c2909e25", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "10295ff1-62c3-4bae-8883-49f822172f0d", "created_at": "2025-03-28T10:18:12.748972+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/10295ff1-62c3-4bae-8883-49f822172f0d", "rel": "self"}, {"href": "http://localhost/volume/targets/10295ff1-62c3-4bae-8883-49f822172f0d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5c67ec15-b852-4c2f-82ac-cb6ad7f815ef", "created_at": "2025-03-28T10:18:12.749825+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/5c67ec15-b852-4c2f-82ac-cb6ad7f815ef", "rel": "self"}, {"href": "http://localhost/volume/targets/5c67ec15-b852-4c2f-82ac-cb6ad7f815ef", "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=5c67ec15-b852-4c2f-82ac-cb6ad7f815ef"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.032843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2705dfda-cb73-4c16-8109-2e1aafa3082b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:12.789663+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_owner_recorded_project_scope [0.091847s] ... 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-287d3928-0202-4dad-8043-8b5baf346874
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.785647+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, "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-17b0a1b4-7299-4167-b95a-94a648060d9a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.785647+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, "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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.050280s] ... 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-ee0390b5-a514-42cd-b121-45da94e62eb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.86
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.083321s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4e5ce840-545e-4649-84c8-60c137d61956
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "6793219f-331f-43c3-89af-a2731a11cb2f", "instance_uuid": "af8e2622-18a8-4da6-abc3-2c699bd72e05", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/6793219f-331f-43c3-89af-a2731a11cb2f", "rel": "self"}, {"href": "http://localhost/nodes/6793219f-331f-43c3-89af-a2731a11cb2f", "rel": "bookmark"}]}, {"uuid": "7d38aeee-ad37-4670-bbfa-e44f4ef366de", "instance_uuid": "5b6fd399-6176-44e6-887b-9f6b1811ef68", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7d38aeee-ad37-4670-bbfa-e44f4ef366de", "rel": "self"}, {"href": "http://localhost/nodes/7d38aeee-ad37-4670-bbfa-e44f4ef366de", "rel": "bookmark"}]}, {"uuid": "3c08e1ef-2c47-4a96-bde4-23e7b0505486", "instance_uuid": "dbc8348c-6fdd-44cb-ae17-8798fde5e292", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3c08e1ef-2c47-4a96-bde4-23e7b0505486", "rel": "self"}, {"href": "http://localhost/nodes/3c08e1ef-2c47-4a96-bde4-23e7b0505486", "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=3c08e1ef-2c47-4a96-bde4-23e7b0505486"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.029885s] ... 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-edb80303-bf8b-4a4d-9a2b-af7bea564b6c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.041258s] ... 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-5b05c05d-9c6a-456d-a038-ef65bd21b4fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.060017s] ... 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-0b45d7fb-7e0a-450d-8833-de1a4d656840
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.046366s] ... 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-62196335-b0ce-4f28-b93a-cbcf21cb9be2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.044228s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-6850ac1a-5026-4878-8e93-ce72eabed5af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.055284s] ... 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-ec9237ea-9542-4163-ae75-4542c0d06fd4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:12.932965+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_owner_system_scope [0.145072s] ... 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-c674bd88-05db-4dba-aa3b-690afdaffc5f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.935051+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, "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-0ac1dfb1-d9a4-4e87-8c2a-42fb297b3c46
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:12.935051+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "cond
    uctor_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, "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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.047663s] ... 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-426bbef6-d53d-403d-ac58-9c03d6ef381b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.057237s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb215824-5413-47b3-bde6-df317d93ac08
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_protected_not_allowed [0.055567s] ... 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-b550dae0-fe8c-4c95-b2e9-9b28e9ea86ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('protected' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.027191s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=True WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.029730s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-10ee4973-c0e4-44b7-9d7a-affac6d0c837
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.030399s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3d31cc37-9fd3-41bd-9c81-e0847ce331d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": []}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.102332s] ... 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-8c5549fa-4221-489c-aba8-10e2735f6eab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.048070s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a31d33a-e285-4ab5-bfeb-aaecd33254f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "edff607b-f77d-41fc-93ff-70fbb71959b1", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/edff607b-f77d-41fc-93ff-70fbb71959b1", "rel": "self"}, {"href": "http://localhost/volume/targets/edff607b-f77d-41fc-93ff-70fbb71959b1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3477263e-35ac-4f09-b4dc-1d788ec4141c", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3477263e-35ac-4f09-b4dc-1d788ec4141c", "rel": "self"}, {"href": "http://localhost/volume/targets/3477263e-35ac-4f09-b4dc-1d788ec4141c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "61d5b06e-e475-4a29-8091-bc4e4e984233", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/61d5b06e-e475-4a29-8091-bc4e4e984233", "rel": "self"}, {"href": "http://localhost/volume/targets/61d5b06e-e475-4a29-8091-bc4e4e984233", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.323234s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1ece75c-735e-48d7-9d35-6107d2dc6e61
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "eb9b6e63-7597-4601-804e-139b8a6428da", "created_at": "2025-03-28T10:18:12.869173+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "ca2561c0-70ce-4745-874a-71abf213602a", "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/eb9b6e63-7597-4601-804e-139b8a6428da", "rel": "self"}, {"href": "http://localhost/nodes/eb9b6e63-7597-4601-804e-139b8a6428da", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/eb9b6e63-7597-4601-804e-139b8a6428da/ports", "rel": "self"}, {"href": "http://localhost/nodes/eb9b6e63-7597-4601-804e-139b8a6428da/ports", "rel": "bookmark"}]}, {"uuid": "58bac5ce-9ca5-470e-9b31-9ee31436a6fa", "created_at": "2025-03-28T10:18:12.870937+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "5fceec02-7ab2-4d8c-b7a8-68de4ea95b1d", "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/58bac5ce-9ca5-470e-9b31-9ee31436a6fa", "rel": "self"}, {"href": "http://localhost/nodes/58bac5ce-9ca5-470e-9b31-9ee31436a6fa", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/58bac5ce-9ca5-470e-9b31-9ee31436a6fa/ports", "rel": "self"}, {"href": "http://localhost/nodes/58bac5ce-9ca5-470e-9b31-9ee31436a6fa/ports", "rel": "bookmark"}]}, {"uuid": "6fb4b95a-ad81-487b-beaf-c9b8cf7c6d21", "created_at": "2025-03-28T10:18:12.872705+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "633de395-67a2-4bb9-b0d4-9d7e9a8b2ccd", "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/6fb4b95a-ad81-487b-beaf-c9b8cf7c6d21", "rel": "self"}, {"href": "http://localhost/nodes/6fb4b95a-ad81-487b-beaf-c9b8cf7c6d21", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6fb4b95a-ad81-487b-beaf-c9b8cf7c6d21/ports", "rel": "self"}, {"href": "http://localhost/nodes/6fb4b95a-ad81-487b-beaf-c9b8cf7c6d21/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=6fb4b95a-ad81-487b-beaf-c9b8cf7c6d21"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.070620s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.173314s] ... 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-26dea7a8-3bfd-4a18-ae76-a4c2f8240c50
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-353ad4ff-2ce4-4dd4-9c80-f9ed03b42a65
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-55a22621-cf62-47fb-9cea-495130c98f47
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-e309b9e9-f62d-446d-9864-260c64b9e60e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-a75a6910-7520-4b98-b918-9905deef24c2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-e958f71b-1a55-4433-8e52-4b4ae0a2f23b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.042655s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d717344-8ee5-4856-bea2-745d5e48e189
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "0d25b550-a5a8-4ad0-9b83-a2b79c1f1661", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/0d25b550-a5a8-4ad0-9b83-a2b79c1f1661", "rel": "self"}, {"href": "http://localhost/volume/targets/0d25b550-a5a8-4ad0-9b83-a2b79c1f1661", "rel": "bookmark"}]}, {"uuid": "db988640-f6b3-4508-b499-1832c9c84eb8", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/db988640-f6b3-4508-b499-1832c9c84eb8", "rel": "self"}, {"href": "http://localhost/volume/targets/db988640-f6b3-4508-b499-1832c9c84eb8", "rel": "bookmark"}]}, {"uuid": "37bf8268-5888-486b-b09f-067c535745f7", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/37bf8268-5888-486b-b09f-067c535745f7", "rel": "self"}, {"href": "http://localhost/volume/targets/37bf8268-5888-486b-b09f-067c535745f7", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.046556s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d437df87-b3f2-4cf3-b77e-a2cad79947d6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.183918+00:00", "updated_at": null, "automated_clean": false, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.038280s] ... 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-2c01e415-8d2f-4d55-845f-464a197a2336
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"boot_index": 0, "links": [{"href": "http://localhost/v1/volume/targets/be677834-06c7-47a1-be0f-c1b63d24cbcf", "rel": "self"}, {"href": "http://localhost/volume/targets/be677834-06c7-47a1-be0f-c1b63d24cbcf", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/2428d0de-50c3-4c38-9c33-d137c72187f3", "rel": "self"}, {"href": "http://localhost/volume/targets/2428d0de-50c3-4c38-9c33-d137c72187f3", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=2428d0de-50c3-4c38-9c33-d137c72187f3"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.048843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd37ce8a-5ee6-44c0-af27-724792a69d16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.231150+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-1a1fb481-d689-4288-9515-993a7cf1b49d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.231150+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "targe
    t_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.037622s] ... 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-ad485967-36a3-4eac-92c9-295e22caca85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.085866s] ... 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-05b910a7-03d3-4dfe-8da9-55870667f980
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.249503+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, "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-b54c996c-4198-4370-aff0-85088ffb891c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.249503+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "c
    onductor_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, "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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.096733s] ... 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-4d1a999f-b2c0-4458-811b-312708e696b8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'bad_trait' is not valid under any of the given schemas. Possible root cause: 'bad_trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.035779s] ... 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-2c81bbf1-c8de-4956-8ae7-7d7ffafe690c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:13.286923+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.047412s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7543526a-8f41-4f52-8cfa-84c637a8394d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.285869+00:00", "updated_at": null, "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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.054874s] ... 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-a31c7071-ee3b-472a-9866-819bf76cbda3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.039298s] ... 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-1838d0d7-e461-45cc-ac43-1a4a2844a5d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"boot_index": 0, "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.048488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-93fc71d3-0802-4b22-92b4-20908fbc0103
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.328653+00:00", "updated_at": null, "automated_clean": true, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version [0.087010s] ... 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-f9edde35-266b-40e7-8b6e-e52171070050
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.047057s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content
Openstack-Request-Id: req-51e4a8aa-3e9f-4bde-bf56-057eb8415822
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.059133s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.037931s] ... 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-955f3c31-1695-40ea-8a47-5d17cf83656a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.076406s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a7cbaca-a46a-4267-8ed4-9008714a4961
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.378701+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-9add7eef-13d5-4ab9-8df8-1af9a35de169
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.378701+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nod
    es/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.093772s] ... 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-0a3d9695-4b95-4d1a-9080-77a7a8fe44b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.435179+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-c0fe1f02-b91b-43fb-88dc-ca7fdf45c197
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.435179+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "foo", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "***
    ***", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.056910s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content
Openstack-Request-Id: req-31fbfde3-8da3-466d-8dfc-59ee8a999168
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.060789s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3d2dd090-e947-4b9d-ae5c-4099f61e2b80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "e35c11d1-27a6-407c-b3b8-b87c5674dac4", "created_at": "2025-03-28T10:18:13.461896+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/e35c11d1-27a6-407c-b3b8-b87c5674dac4", "rel": "self"}, {"href": "http://localhost/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/ports", "rel": "self"}, {"href": "http://localhost/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/states", "rel": "self"}, {"href": "http://localhost/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/volume", "rel": "self"}, {"href": "http://localhost/nodes/e35c11d1-27a6-407c-b3b8-b87c5674dac4/volume", "rel": "bookmark"}]}
GET /v1/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-149367ce-bb51-49d7-9500-a50b19f8821c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "ae456555-eb3c-49d0-bc4c-e74cd754a665", "created_at": "2025-03-28T10:18:13.474364+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/ae456555-eb3c-49d0-bc4c-e74cd754a665", "rel": "self"}, {"href": "http://localhost/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/ports", "rel": "self"}, {"href": "http://localhost/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/states", "rel": "self"}, {"href": "http://localhost/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/volume", "rel": "self"}, {"href": "http://localhost/nodes/ae456555-eb3c-49d0-bc4c-e74cd754a665/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.084887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/869eb491-3e55-4320-bb36-541b994441de WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4482b269-3f1f-4c01-801b-2aec60331257
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "869eb491-3e55-4320-bb36-541b994441de", "created_at": "2025-03-28T10:18:13.453212+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/869eb491-3e55-4320-bb36-541b994441de", "rel": "self"}, {"href": "http://localhost/volume/targets/869eb491-3e55-4320-bb36-541b994441de", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/869eb491-3e55-4320-bb36-541b994441de WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3f1b584-5990-4d21-983a-f74552c6a997
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "869eb491-3e55-4320-bb36-541b994441de", "created_at": "2025-03-28T10:18:13.453212+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/869eb491-3e55-4320-bb36-541b994441de", "rel": "self"}, {"href": "http://localhost/volume/targets/869eb491-3e55-4320-bb36-541b994441de", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /volume/targets/869eb491-3e55-4320-bb36-541b994441de WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c55cbe4a-896a-489a-865c-622521c034e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "869eb491-3e55-4320-bb36-541b994441de", "created_at": "2025-03-28T10:18:13.453212+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/869eb491-3e55-4320-bb36-541b994441de", "rel": "self"}, {"href": "http://localhost/volume/targets/869eb491-3e55-4320-bb36-541b994441de", "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.079438s] ... 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-2af984b6-caba-406a-9d7a-5878260f5635
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.051608s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-baabf833-dab6-4c39-9468-add15b152cc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "228a7790-52fe-45a4-bda0-1c379d4cc6d3", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/228a7790-52fe-45a4-bda0-1c379d4cc6d3", "rel": "self"}, {"href": "http://localhost/volume/targets/228a7790-52fe-45a4-bda0-1c379d4cc6d3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a2c5e755-b2ce-4322-877a-a50d11a6d693", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a2c5e755-b2ce-4322-877a-a50d11a6d693", "rel": "self"}, {"href": "http://localhost/volume/targets/a2c5e755-b2ce-4322-877a-a50d11a6d693", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "88a2cf50-7033-47da-9a95-7496e16fc299", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/88a2cf50-7033-47da-9a95-7496e16fc299", "rel": "self"}, {"href": "http://localhost/volume/targets/88a2cf50-7033-47da-9a95-7496e16fc299", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6c4c206b-d2d5-4427-9d87-2c664a6b1dc0", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6c4c206b-d2d5-4427-9d87-2c664a6b1dc0", "rel": "self"}, {"href": "http://localhost/volume/targets/6c4c206b-d2d5-4427-9d87-2c664a6b1dc0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "49f88477-0333-483b-a98f-970eb0dad23f", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/49f88477-0333-483b-a98f-970eb0dad23f", "rel": "self"}, {"href": "http://localhost/volume/targets/49f88477-0333-483b-a98f-970eb0dad23f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.059670s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-526a9c5e-6eb6-4690-9568-25372515884a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.518583+00:00", "updated_at": null, "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-83ed612b-36ec-4149-9ae1-52314f6ac6ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.518583+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, 
    "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.076558s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content
Openstack-Request-Id: req-f84ccc4c-cd42-4a02-92ca-833b8c48f04d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.039724s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-086b2601-c518-4946-acef-db52c0cbf3b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field [0.043507s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-33098453-ce93-4709-a23b-9342947a22f9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.576341+00:00", "updated_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_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.031130s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.071314s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-e158fe31-8de0-4776-90ae-00cf7f880f4b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.041790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=eed9247e-458d-4d48-b0f6-6bd71d3b8756 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-90b5c423-dcc5-48db-8a54-1d08dcc882b5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"nodes": [{"uuid": "ddcd60ec-fb96-4f3e-a26e-f4fdb72ae030", "instance_uuid": "eed9247e-458d-4d48-b0f6-6bd71d3b8756", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ddcd60ec-fb96-4f3e-a26e-f4fdb72ae030", "rel": "self"}, {"href": "http://localhost/nodes/ddcd60ec-fb96-4f3e-a26e-f4fdb72ae030", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.046178s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-99590522-2fa4-4c0d-85ef-6b93defaa9ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "741ab01b-07bd-4fcf-8363-28531f667e98", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/741ab01b-07bd-4fcf-8363-28531f667e98", "rel": "self"}, {"href": "http://localhost/volume/targets/741ab01b-07bd-4fcf-8363-28531f667e98", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "98016106-721b-4884-af4b-0a3e33be7f97", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/98016106-721b-4884-af4b-0a3e33be7f97", "rel": "self"}, {"href": "http://localhost/volume/targets/98016106-721b-4884-af4b-0a3e33be7f97", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b7b7a032-b731-4521-9b05-c08def982bc0", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b7b7a032-b731-4521-9b05-c08def982bc0", "rel": "self"}, {"href": "http://localhost/volume/targets/b7b7a032-b731-4521-9b05-c08def982bc0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.031613s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c69d5c7d-1304-4584-8771-e3f8ccf99aa0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.076372s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c54caeab-b380-4cb8-a52c-9f0c61b77191
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.041538s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=ab30a7cd-0c48-4c9d-a4d0-d5a7e9246bef WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8587052f-ed6b-4c1e-bb4a-d6c248fb2b57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.057936s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d285fa9d-3345-47f9-9902-203fca1a590b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-6bc388f9-430b-4e01-9416-814fb2f3fce1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-528642a1-72c9-44f4-8da5-487585225119
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestTraits.test_delete_trait_fails_if_trait_not_found [0.047065s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a9f386a2-6b2b-4ed3-9763-6c480ceeb29d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.051863s] ... 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-e4ff9e36-f52f-42c0-a7d4-79417a89aaca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:13.747328+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"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.040958s] ... 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-b81d0e0b-fa4e-4787-a5b4-5294f1f23d38
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.097173s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b2c5890d-fc7b-476c-9754-ede5028877a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.764346+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-e0661199-4f7e-4ee1-87d8-e25b5d73687f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.764346+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_volume_target.TestPatch.test_add_node_id [0.063011s] ... 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-ea64c2b0-0fa7-4e98-b69e-0de0a9db1c71
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestTraits.test_get_all_traits [0.048932s] ... 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-a8612a4a-77f6-4836-b76d-232d25edb1b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.067053s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2ece9587-3289-4640-8e5f-5d784a9b8b4b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.853888+00:00", "updated_at": null, "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-dccb3d85-813e-42da-8513-60747651f672
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.853888+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_inter
    face": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.047888s] ... 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-705896f6-9a7d-46e9-aeb2-d022b2dd4436
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_target.TestPatch.test_add_node_uuid [0.059661s] ... 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-344f897b-89f5-4f47-bd33-9bd60c466b5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:13.868095+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.053317s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a949bf4f-c3f9-4754-80b8-a4562e506a0d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.43
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.910895+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-97918175-edf6-4f96-b3c3-ee6a61e82fc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.44
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.910895+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": 
    [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.046609s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4efaf41f-ae87-498a-88df-9005a9816e99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.052944s] ... 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-27f67a99-02b6-4eec-bdcd-826836841fac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.041838s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2121a860-53bb-4999-bd0f-6021c8b0a100
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:13.959817+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.045141s] ... 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-192a5f87-8e27-4925-91ca-0b4edc456a23
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: Additional properties are not allowed ('trait' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.063522s] ... 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-45251aec-2079-449a-a8cd-2ebeddf003f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:13.982653+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.050709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6b80b29c-0563-4374-824d-cac7e51a10e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.002016+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-1fb8ddaa-4c58-4180-8d67-8108606fa197
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.002016+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "lin
    ks": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.054977s] ... 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-71e5aeaa-fd19-4a5e-a1fe-5335b8b38e2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes/<node identifier>/traits/<trait> with no body, or all node traits may be replaced via PUT /v1/nodes/<node identifier>/traits with the list of traits specified in the request body.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [0.510546s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '01bea826-0f29-4bbe-8c1b-38cf25b686a3', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/01bea826-0f29-4bbe-8c1b-38cf25b686a3
Openstack-Request-Id: req-26570822-5623-4dee-b7a2-e8284627d9f6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "01bea826-0f29-4bbe-8c1b-38cf25b686a3", "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/01bea826-0f29-4bbe-8c1b-38cf25b686a3", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/ports", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/states", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/volume", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/volume", "rel": "bookmark"}]}
GET /v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c8175be5-fd44-48df-b4b1-b866e6a90d9a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "01bea826-0f29-4bbe-8c1b-38cf25b686a3", "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/01bea826-0f29-4bbe-8c1b-38cf25b686a3", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/ports", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/states", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/volume", "rel": "self"}, {"href": "http://localhost/nodes/01bea826-0f29-4bbe-8c1b-38cf25b686a3/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'c9b6f61e-1fbc-4267-a5a3-035590da9396', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/c9b6f61e-1fbc-4267-a5a3-035590da9396
Openstack-Request-Id: req-d9ac06fb-aba0-4e44-9d6a-d9d856eba697
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "c9b6f61e-1fbc-4267-a5a3-035590da9396", "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/c9b6f61e-1fbc-4267-a5a3-035590da9396", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/ports", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-
    035590da9396/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/states", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/volume", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/volume", "rel": "bookmark"}]}
GET /v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f8c7c20c-4bbb-4691-aae1-d873c9ad7cc2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "c9b6f61e-1fbc-4267-a5a3-035590da9396", "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/c9b6f61e-1fbc-4267-a5a3-035590da9396", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/ports", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/states", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/volume", "rel": "self"}, {"href": "http://localhost/nodes/c9b6f61e-1fbc-4267-a5a3-035590da9396/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'd0abc30c-b26d-4096-9b1e-3ad1441bfede', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/d0abc30c-b26d-4096-9b1e-3ad1441bfede
Openstack-Request-Id: req-0556f8bc-53e9-40d6-9d83-56eae54aefb4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openst
    ack-Ironic-Api-Version: 1.40
{"uuid": "d0abc30c-b26d-4096-9b1e-3ad1441bfede", "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/d0abc30c-b26d-4096-9b1e-3ad1441bfede", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/states", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/volume", "rel": "bookmark"}]}
GET /v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-65b68491-10be-453a-892f-cd5882dd97de
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "d0abc30c-b26d-4096-9b1e-3ad1441bfede", "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/d0abc30c-b26d-4096-9b1e-3ad1441bfede", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/
    nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/states", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0abc30c-b26d-4096-9b1e-3ad1441bfede/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '02fd6248-85fc-4ed6-be50-29bf96d0c1c9', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/02fd6248-85fc-4ed6-be50-29bf96d0c1c9
Openstack-Request-Id: req-c89e44b6-ec4a-470b-81c2-61ca5b7a5287
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "02fd6248-85fc-4ed6-be50-29bf96d0c1c9", "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/02fd6248-85fc-4ed6-be50-29bf96d0c1c9", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/states", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/volume", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/volume", "rel": "bookmark"}]}
GET /v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bc5c9684-
    3e28-4063-82ec-fc26245f905b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "02fd6248-85fc-4ed6-be50-29bf96d0c1c9", "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/02fd6248-85fc-4ed6-be50-29bf96d0c1c9", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/states", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/volume", "rel": "self"}, {"href": "http://localhost/nodes/02fd6248-85fc-4ed6-be50-29bf96d0c1c9/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'd2d09b84-857e-4cff-9645-33d90bc4b239', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/d2d09b84-857e-4cff-9645-33d90bc4b239
Openstack-Request-Id: req-9accba6a-6d99-49d1-bfb0-bae344bdb847
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "d2d09b84-857e-4cff-9645-33d90bc4b239", "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/d2d09b84-857e-4cff-9645-33d90bc4b239", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/ports", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/states", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/volume", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/volume", "rel": "bookmark"}]}
GET /v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-92259427-7f41-4543-af0e-a3a1b3322997
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "d2d09b84-857e-4cff-9645-33d90bc4b239", "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/d2d09b84-857e-4cff-9645-33d90bc4b239", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/ports", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/states", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/volume", "rel": "self"}, {"href": "http://localhost/nodes/d2d09b84-857e-4cff-9645-33d90bc4b239/volume", "rel": "bookmark"}]}
POST /v1/nodes WIT
    H {'uuid': '257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2
Openstack-Request-Id: req-dfd1d0c2-4f85-439f-84cf-1142da3a28b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2", "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/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/ports", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/states", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/volume", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/volume", "rel": "bookmark"}]}
GET /v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-682ccf13-ac94-4de6-8688-4000586f3ff5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2", "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/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/ports", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/states", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/volume", "rel": "self"}, {"href": "http://localhost/nodes/257a1dca-31cd-4d15-a9cd-d9c9cc13c1b2/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '93925c8b-9d96-47b5-8d57-34e1e6f87724', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/93925c8b-9d96-47b5-8d57-34e1e6f87724
Openstack-Request-Id: req-f6b35d70-a7e3-45b0-958a-79c8073d10c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "93925c8b-9d96-47b5-8d57-34e1e6f87724", "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/93925c8b-9d96-47b5-8d57-34e1e6f87724", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/ports", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/ports",
     "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/states", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/volume", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/volume", "rel": "bookmark"}]}
GET /v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-601016af-c16e-44db-a35a-1c6a4c9a1d72
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "93925c8b-9d96-47b5-8d57-34e1e6f87724", "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/93925c8b-9d96-47b5-8d57-34e1e6f87724", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/ports", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/states", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/volume", "rel": "self"}, {"href": "http://localhost/nodes/93925c8b-9d96-47b5-8d57-34e1e6f87724/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '56e74e90-88d0-4b49-9d6a-09cd4798edd0', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/56e74e90-88d0-4b49-9d6a-09cd4798edd0
Openstack-Request-Id: req-648a594a-9cca-4e86-a20e-e91a2a5554ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Versi
    on: 1.40
{"uuid": "56e74e90-88d0-4b49-9d6a-09cd4798edd0", "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/56e74e90-88d0-4b49-9d6a-09cd4798edd0", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/ports", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/states", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/volume", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/volume", "rel": "bookmark"}]}
GET /v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-47b4257e-14d3-4c54-b077-953a0713180f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "56e74e90-88d0-4b49-9d6a-09cd4798edd0", "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/56e74e90-88d0-4b49-9d6a-09cd4798edd0", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-
    4b49-9d6a-09cd4798edd0/ports", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/states", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/volume", "rel": "self"}, {"href": "http://localhost/nodes/56e74e90-88d0-4b49-9d6a-09cd4798edd0/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '1b932a4a-0f36-448b-bea0-6f34a7029251', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/1b932a4a-0f36-448b-bea0-6f34a7029251
Openstack-Request-Id: req-29f87143-b740-4dd6-8cc0-f2705343b005
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "1b932a4a-0f36-448b-bea0-6f34a7029251", "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/1b932a4a-0f36-448b-bea0-6f34a7029251", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/ports", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/states", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/volume", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/volume", "rel": "bookmark"}]}
GET /v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6ae84c11-230c-4168-ba25-7d00b
    2ec7b42
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "1b932a4a-0f36-448b-bea0-6f34a7029251", "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/1b932a4a-0f36-448b-bea0-6f34a7029251", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/ports", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/states", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/volume", "rel": "self"}, {"href": "http://localhost/nodes/1b932a4a-0f36-448b-bea0-6f34a7029251/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '2afd22cc-1f87-4754-b2f7-f10ed0245299', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/2afd22cc-1f87-4754-b2f7-f10ed0245299
Openstack-Request-Id: req-19732b1d-742b-4fb3-82bc-db42dfbee9b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "2afd22cc-1f87-4754-b2f7-f10ed0245299", "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/2afd22cc-1f87-4754-b2f7-f10ed0245299", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/ports", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/states", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/volume", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/volume", "rel": "bookmark"}]}
GET /v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-49d32d62-15df-4974-a73f-d5f903791609
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "2afd22cc-1f87-4754-b2f7-f10ed0245299", "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/2afd22cc-1f87-4754-b2f7-f10ed0245299", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/ports", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/states", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/volume", "rel": "self"}, {"href": "http://localhost/nodes/2afd22cc-1f87-4754-b2f7-f10ed0245299/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'f6a41a96-88f
    7-41b1-a3d3-abc539982e11', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/f6a41a96-88f7-41b1-a3d3-abc539982e11
Openstack-Request-Id: req-da0d181f-9e66-44cb-9e7a-7fb4cea2a77d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "f6a41a96-88f7-41b1-a3d3-abc539982e11", "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/f6a41a96-88f7-41b1-a3d3-abc539982e11", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/ports", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/states", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/volume", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/volume", "rel": "bookmark"}]}
GET /v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7ab9c72b-ae4d-470a-be6c-d916da8f3c6f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "f6a41a96-88f7-41b1-a3d3-abc539982e11", "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/f6a41a96-88f7-41b1-a3d3-abc539982e11", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/ports", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/states", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/volume", "rel": "self"}, {"href": "http://localhost/nodes/f6a41a96-88f7-41b1-a3d3-abc539982e11/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '4fb72217-82a7-42b7-bb6d-0453346bc3ad', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/4fb72217-82a7-42b7-bb6d-0453346bc3ad
Openstack-Request-Id: req-e750f7fc-4013-4722-9963-3c619ae48fef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "4fb72217-82a7-42b7-bb6d-0453346bc3ad", "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/4fb72217-82a7-42b7-bb6d-0453346bc3ad", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/ports", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/ports", "rel": "bookmark"}], 
    "states": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/states", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/volume", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/volume", "rel": "bookmark"}]}
GET /v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bceeb0fc-7681-440b-b971-cffbe00771f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "4fb72217-82a7-42b7-bb6d-0453346bc3ad", "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/4fb72217-82a7-42b7-bb6d-0453346bc3ad", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/ports", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/states", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/volume", "rel": "self"}, {"href": "http://localhost/nodes/4fb72217-82a7-42b7-bb6d-0453346bc3ad/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.053647s] ... 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-f9720632-c3aa-419e-94be-3fdb4e662f0e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.067214s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d0c852a-2705-44c6-a7cb-7f4736c9d256
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.067711+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-4d57aac2-fefd-47f6-8171-a18994b14053
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.067711+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspect wait", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2
    e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.082720s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content
Openstack-Request-Id: req-5fc7c639-5b05-427d-afa3-c62031469395
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.055849s] ... 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-2d6dee53-ec57-428c-98b2-317f8cfb6b1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.044698s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ab76de8c-2e24-4c3a-9847-a33546f709bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.123015+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version [0.044164s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2578dd3b-2b33-4775-b74a-5fb49940cc51
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.163640+00:00", "updated_at": null, "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-08b1fa77-449d-4e11-8b58-c131d52442e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.163640+00:00", "updated_at": null, "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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.065735s] ... 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-ce6cb88a-4b9a-479e-b84c-3a370290d0ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.151192+00:00", "updated_at": "2025-03-28T10:18:14.154322+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-e897af31-bfcf-4965-81b6-e50081bef6c0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.151192+00:00", "updated_at": "2025-03-28T10:18:14.154322+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_node.TestTraits.test_set_all_traits_empty [0.081497s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content
Openstack-Request-Id: req-f014ba4f-32d6-4522-9635-78d26ad30d76
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.041282s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7ef1706-e2ac-4311-915c-78304e47e4e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.211704+00:00", "updated_at": null, "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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.037337s] ... 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-888f58e7-9ac4-4432-87d5-21cd56bac9f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_interfaces_bad_version [0.183911s] ... 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-cf072af1-cb08-4036-a8e3-5f31b297157c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-4adbdc92-f050-462e-bfb4-dcfee1fc4ab6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-3ba27e02-4d7c-4c12-9c38-3825569f5fc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-50628000-1d54-40b7-b941-6987648f50c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-11f0f66f-6bc9-4396-9231-441f3a5e7b14
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-c1229440-9e8f-483f-a9c9-608fcfd003cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-2faf9dac-5430-4af5-b2e8-2befae34b9fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-7dba6f6c-0551-4403-8fc8-dcaefcd1c494
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.057123s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present [0.045684s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b46ceabd-42ae-47eb-bffc-59d6611360d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.255125+00:00", "updated_at": null, "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_volume_target.TestPatch.test_remove_non_existent_property_fail [0.043622s] ... 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-8eef505b-b4f5-43df-8315-1f77082347d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestTraits.test_set_all_traits_rejects_bad_trait [0.039497s] ... 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-7e1d07ad-f7e9-438d-ba18-3ea08f9bee47
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_node.TestListNodes.test_node_network_data [0.040582s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/129f2299-c290-477f-a85f-73f2e15f17e7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-53afc2e2-e674-481d-837c-b649a8a9bc60
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "129f2299-c290-477f-a85f-73f2e15f17e7", "created_at": "2025-03-28T10:18:14.297531+00:00", "updated_at": null, "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/129f2299-c290-477f-a85f-73f2e15f17e7", "rel": "self"}, {"href": "http://localhost/nodes/129f2299-c290-477f-a85f-73f2e15f17e7", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/ports", "rel": "self"}, {"href": "http://localhost/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/states", "rel": "self"}, {"href
    ": "http://localhost/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/volume", "rel": "self"}, {"href": "http://localhost/nodes/129f2299-c290-477f-a85f-73f2e15f17e7/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.039558s] ... 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-1c8bd352-7b81-4542-8e64-ef64a7c47897
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_specify_traits [0.109344s] ... 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-c612ad74-1b9c-4694-8c04-477e2feb72af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.044263s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ff39d2d1-02c0-4023-a2c4-1fca050f1929
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_target.TestPatch.test_replace_boot_index_already_exist [0.043278s] ... 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-cdc3afb7-0da6-4739-8990-7eaade6d29e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version [0.051070s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5e6ab0c1-59ff-40f6-a9b1-310f5dc55fc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.341980+00:00", "updated_at": null, "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-bd151909-a242-44a1-84ec-c8e247ee3960
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.341980+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state":
     null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.064581s] ... 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-97c5919c-35c7-48bf-b051-58572ae6db70
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.049589s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3c47c45b-7838-4d7f-8218-b733cecd3d1f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.391062+00:00", "updated_at": null, "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-da3bdfd0-b143-4766-a414-a0e9b9288b85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.391062+00:00", "updated_at": null, "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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.075054s] ... 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-7966b147-2a32-4131-9f76-00e077be6c5e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_target.TestPatch.test_replace_invalid_power_state [0.075363s] ... 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-7d206396-26dd-484b-a9da-00f67ba0481b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.041634s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-11f3ce0d-975c-4dfb-ace6-828634cca730
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.443701+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.078702s] ... 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-18111e6a-005f-4aa4-ab16-90f77b840507
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.471809+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-77884a6c-f328-468d-b891-bd4c11087283
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.471809+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.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.039859s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f7020db9-baef-4282-9d72-7c9cc9eea857
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.481996+00:00", "updated_at": null, "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_node.TestTraits.test_set_all_traits_with_chassis [0.100999s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content
Openstack-Request-Id: req-d297dd65-8964-4546-acd0-927a6b7845c0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.107634s] ... 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-30e4d3d9-85e9-42ca-a7b6-f660dde8f56b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.492201+00:00", "updated_at": "2025-03-28T10:18:14.494961+00:00", "boot_index": 0, "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.049819s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-111a09fe-6c81-4385-9c20-fddd91e68347
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "81cc2c3f-d943-46b6-9ffb-22807e9a9c72", "created_at": "2025-03-28T10:18:14.524966+00:00", "updated_at": null, "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/81cc2c3f-d943-46b6-9ffb-22807e9a9c72", "rel": "self"}, {"href": "http://localhost/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/ports", "rel": "self"}, {"href": "http://localhost/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/states", "rel": "self"}, {"href": "http://localhost/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/volume", "rel": "self"}, {"href": "http://localhost/nodes/81cc2c3f-d943-46b6-9ffb-22807e9a9c72/volume", "rel": "bookmark"}]}
GET /v1/nodes/c96e50c2-9494-4515-ae94-83367ae1c335 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-08a7f0b6-693b-4e75-833a-b11e33495e99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "c96e50c2-9494-4515-ae94-83367ae1c335", "created_at": "2025-03-28T10:18:14.535918+00:00", "updated_at": null, "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/c96e50c2-9494-4515-ae94-83367ae1c335", "rel": "self"}, {"href": "http://localhost/nodes/c96e50c2-9494-4515-ae94-83367ae1c335", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/ports", "rel": "self"}, {"href": "http://localhost/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/states", "rel": "self"}, {"href": "http://localhost/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/volume", "rel": "self"}, {"href": "http://localhost/nodes/c96e50c2-9494-4515-ae94-83367ae1c335/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.037120s] ... 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-78279330-10e2-4d04-9345-ead4d87592b9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_valid_extra [0.109827s] ... 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-4b6b2dce-82aa-4ab9-b1d4-9acf0b944533
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.567214+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-587f00b8-22c8-445b-a58d-91475b8b3271
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.567214+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.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.053557s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5a5255e0-71c6-4f64-a4e3-dad530921b3a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.574052+00:00", "updated_at": null, "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-518ef81a-b016-4fad-8a42-c62a70a82525
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.574052+00:00", "updated_at": null, "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_volume_target.TestPatch.test_replace_node_uuid [0.045956s] ... 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-e0d60091-b5c5-4f18-a334-b203fde2f32e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.604293+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.036500s] ... 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-f0eeceb4-c562-4a98-aceb-ed4ee929dadd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_multi [0.147163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35305853-357d-4dbc-9f3f-c5b2d9226232
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"ports": [{"uuid": "bf77b025-4823-4c1b-9054-1e2d7730580a", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/bf77b025-4823-4c1b-9054-1e2d7730580a", "rel": "self"}, {"href": "http://localhost/ports/bf77b025-4823-4c1b-9054-1e2d7730580a", "rel": "bookmark"}]}, {"uuid": "9e839868-d7fd-4880-9489-be3cd54ff6ac", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/9e839868-d7fd-4880-9489-be3cd54ff6ac", "rel": "self"}, {"href": "http://localhost/ports/9e839868-d7fd-4880-9489-be3cd54ff6ac", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.082470s] ... 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-71426745-cef0-4c93-8d2b-018cfe0fe62a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.661185+00:00", "updated_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-43814cb1-cdd0-4822-a660-8e134ff1f914
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.661185+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.051475s] ... 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-591aa892-0361-4c9c-b7de-0c5c376003a1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.109901s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-94efdf43-8fc3-4a41-8376-248c634a58ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.658756+00:00", "updated_at": null, "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-475358e4-34b1-4219-a394-8e074727294e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.658756+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv
    ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.051453s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d2f33a79-7387-45c9-8083-1b7ca4b703a4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"ports": [{"uuid": "d2094465-7f3b-42cd-9387-a544e07b6826", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/d2094465-7f3b-42cd-9387-a544e07b6826", "rel": "self"}, {"href": "http://localhost/ports/d2094465-7f3b-42cd-9387-a544e07b6826", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.043015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d675ec9b-897c-4955-8244-020164371d2f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.751956+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": true, "protected_reason": "reason!", "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.037806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-fb98eba4-dbe7-4e54-81e3-8181598473ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_volume_target.TestPatch.test_replace_singular [0.059471s] ... 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-c11d4146-3b9c-4c74-8a1e-23f19edc75bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.751497+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.122745s] ... 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-0fa4bcf7-cda6-49b5-a3a6-a1e430e1de84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.755289+00:00", "updated_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-9decf2e4-206b-4c74-92dc-fdcde7d32ab4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.755289+00:00", "updated_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.TestListNodes.test_node_retired [0.051051s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-492b328b-a436-4432-9413-85cd276fa84b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "14c2abd5-4e3f-445f-8ab3-ce47c9c240a4", "created_at": "2025-03-28T10:18:14.794370+00:00", "updated_at": null, "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/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4", "rel": "self"}, {"href": "http://localhost/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/ports", "rel": "self"}, {"href": "http://localhost/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/states", "rel": "self"}, {"href": "http://localhost/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/volume", "rel": "self"}, {"href": "http://localhost/nodes/14c2abd5-4e3f-445f-8ab3-ce47c9c240a4/volume", "rel": "bookmark"}]}
GET /v1/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7f20a046-61f7-407b-bb1a-29bb31f0a061
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc", "created_at": "2025-03-28T10:18:14.807005+00:00", "updated_at": null, "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/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc", "rel": "self"}, {"href": "http://localhost/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/ports", "rel": "self"}, {"href": "http://localhost/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/states", "rel": "self"}, {"href": "http://localhost/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/volume", "rel": "self"}, {"href": "http://localhost/nodes/872d6fc0-36b1-471e-b4f6-3be9fa2cb4dc/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.046691s] ... 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-79071f35-a37f-497e-9d45-675d0510f424
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.798878+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": "bar"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.028512s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.077678s] ... 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-cd5c0d49-d793-46a8-a77e-d663371679ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.802496+00:00", "updated_at": "2025-03-28T10:18:14.847559+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1", "network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.050046s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c66201da-c791-4145-a364-47896dfc4b06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.845410+00:00", "updated_at": null, "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-5b4344e3-f3e6-4c9b-a174-06ed5bad7ef9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.845410+00:00", "updated_at": null, "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_volume_target.TestPatch.test_update_not_found [0.044733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/62ccdaf6-9e4e-46a0-ba1d-743f7e48d7ce WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a367a656-d62e-4be5-87d4-22bc21814201
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 62ccdaf6-9e4e-46a0-ba1d-743f7e48d7ce could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.045260s] ... 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-da6f522b-2fc2-4b62-b64e-f3580b4f77fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.050531s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a92063dc-93fd-4eab-b4bf-d15727a9ec88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.894783+00:00", "updated_at": null, "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-2af68e54-87b1-410b-9297-886955298332
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.894783+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected
    ": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_conductor_group [0.119014s] ... 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-f0c12306-1339-41bc-8d67-12cdaa6d5059
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.907222+00:00", "updated_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-3f2b5615-7843-44b8-8e98-af61d5b7f8bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.907222+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "magic", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes
    /1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.040285s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-49ea758b-f3e2-489f-a0a6-3d66c02fc51f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.946358+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": true, "retired_reason": "warranty expired", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.069550s] ... 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-84a8f009-6604-46fd-be7b-822f81505024
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:14.934285+00:00", "updated_at": "2025-03-28T10:18:14.968966+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.TestPost.test_create_node_with_default_resource_class [0.073865s] ... 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-88efa0b9-0afe-4882-a8ed-32c90abdc055
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.982469+00:00", "updated_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-89cccc6a-f497-442c-93fd-e47070e00692
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:14.982469+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "class1", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot [0.059530s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4ca2062d-2527-4444-ac80-6e3abfdf03e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "19c64492-b795-4d58-aad5-835d46eb5a2f", "created_at": "2025-03-28T10:18:14.985619+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/19c64492-b795-4d58-aad5-835d46eb5a2f", "rel": "self"}, {"href": "http://localhost/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/states", "rel": "self"}, {"href": "http://localhost/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/volume", "rel": "self"}, {"href": "http://localhost/nodes/19c64492-b795-4d58-aad5-835d46eb5a2f/volume", "rel": "bookmark"}]}
GET /v1/nodes/1e32b3f5-5736-439b-8731-29699045a5de WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2df63580-7cb9-4556-bcb3-d64584420164
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1e32b3f5-5736-439b-8731-29699045a5de", "created_at": "2025-03-28T10:18:15.008808+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/1e32b3f5-5736-439b-8731-29699045a5de", "rel": "self"}, {"href": "http://localhost/nodes/1e32b3f5-5736-439b-8731-29699045a5de", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1e32b3f5-5736-439b-8731-29699045a5de/ports", "rel": "self"}, {"href": "http://localhost/nodes/1e32b3f5-5736-439b-8731-29699045a5de/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1e32b3f5-5736-439b-8731-29699045a5de/states", "rel": "self"}, {"href": "http://localhost/nodes/1e32b3f5-5736-439b-8731-29699045a5de/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1e32b3f5-5736-439b-8731-29699045a5de/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1e32b3f5-5736-439b-8731-29699045a5de/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1e32b3f5-5736-439b-8731-29699045a5de/volume", "rel": "self"}, {"href": "http://localhost/nodes/1e32b3f5-5736-439b-8731-29699045a5de/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.058858s] ... 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-6400b7d7-ae09-4285-8549-1e961eb93bba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_uuid, physical_network, portgroup_uuid, pxe_enabled, name\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.061990s] ... 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-a1c81603-8713-471c-b591-33c37d7659d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('reservation' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.054902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-21021e59-b9bc-42ce-a4ae-eaf844b89623
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.053520+00:00", "updated_at": null, "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-84409a4a-d33a-462f-b599-4f485f34f529
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.053520+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, 
    "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.040429s] ... 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-c6063c89-e644-4c28-8fba-8ce23c36e93e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.037419s] ... 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-68c73ad1-5de3-4fd8-b97c-14d4df0b3574
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.093849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c19f2b3b-abfa-4f72-8089-55f4e65a19ba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.096444s] ... 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-aaa0927a-6313-4a21-a2ea-a2ae5ef4b7d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:15.080441+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode [0.047324s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/54966c95-0097-40ce-8924-07dd41b43ae9/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6974ced7-6a13-4e0f-bfe7-2f783b964b58
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/67fdcc2c-d124-440f-a09e-53d76a2b2471/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d059307c-57e6-429d-9ba5-c0cc69f3b059
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.042884s] ... 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-099594c3-2792-4000-a102-688654fad5eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-bfd023bd-04fe-485d-88a5-fe1fe8449d4d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.068402s] ... 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-8545795e-64af-4af0-9b79-3d2e76e59bfa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:15.158926+00:00", "updated_at": "2025-03-28T10:18:15.196230+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.TestPost.test_post_ports_subresource [0.099674s] ... 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} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2a3115d4-bc5c-4ead-b782-0384acfd5b51
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.093494s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3c4cda5e-51ce-43fb-84c5-a2f204741365
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.038672s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07496aac-635a-4a69-82c7-6f126ce52983
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestPatch.test_add_physical_network_old_api_version [0.047090s] ... 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-1a8baf2e-ef78-4d47-868a-c56b206a7837
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestPost.test_post_ports_subresource_no_node_id [0.063691s] ... 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} 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.TestListNodes.test_node_states_field_hidden_in_lower_version [0.045892s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-133602d4-629f-43bd-aaf5-e2f1e5c2a187
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.270951+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-6fd590ed-48fa-459b-a050-9e75d37ad7a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.270951+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_port.TestPatch.test_add_physical_network_upgrade [0.046035s] ... 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-ad2ddf90-9c50-4955-8cf6-7be7acadfbc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.052266s] ... 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-24905117-03ac-4b04-8d79-cb43689e9991
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.037441s] ... 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-edd2138b-a33f-4dfe-a711-05b02f90a1e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00", "raid_config": {"foo": "bar"}, "target_raid_config": {"foo": "bar"}}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.029674s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.040790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/0f007610-8b21-417e-92f1-2aae818a9779/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a7fbf6e-3129-49ec-baab-e0b84b18787c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/6d1303c8-3927-4c45-a6da-f47f8fc71c67/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a0916d36-f4c2-4f8c-bbca-e6819967a499
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": false}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.039618s] ... 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-2e4f68e9-8ceb-4c02-9db8-01fe823379f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.034756s] ... 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-f23e774b-142e-45dd-b512-593796e17558
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.115925s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'f97d9c3b-d6a2-44c6-b848-8616a59a3a06', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae932790-e2ee-4fff-9ef4-2ab08956e16a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:15.374435+00:00", "updated_at": "2025-03-28T10:18:15.425100+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": "f97d9c3b-d6a2-44c6-b848-8616a59a3a06"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.072214s] ... 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-fde73669-6ef0-4f2e-ba03-fc2afb4648cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-79cf501b-3b3c-45a0-928d-23fbaac506a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.047107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted
Openstack-Request-Id: req-e6d600e9-074d-43d0-bf5d-c26b3cf00bda
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.041945s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2a614b6e-bb75-41b0-a045-0d06fadfb8a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.467075+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-2fe8deb5-7e0e-4d65-97a0-b939bdcce290
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.467075+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "
    rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.085718s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted
Openstack-Request-Id: req-a0555476-b64b-43ff-8da9-7baefeadf850
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.058548s] ... 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-1be0fb6d-5bfc-4e92-8b11-4e5f53f86dc0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
"foo"
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [0.424817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-28ee592b-622b-4cf1-a488-ed0e48990129
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_vendor_passthru_methods [0.040085s] ... 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-b3481c8f-86d6-4caf-a63c-50f70df82b0f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-a9f909c8-02df-4ae4-a856-6bed57a8c81d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestPatch.test_add_root [0.252992s] ... 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-a3196296-0ee9-4b11-9932-39855e7abfd7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:15.648686+00:00", "updated_at": "2025-03-28T10:18:15.683953+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.035393s] ... 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-6998e27b-2fcb-468c-966e-4e53086c3d1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.064992s] ... 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-aa170575-7820-4878-8467-52e2c1bddbb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_add_root_non_existent [0.039208s] ... 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-ca279289-ff08-420a-ac62-dafdfe808d14
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_uuid, physical_network, portgroup_uuid, pxe_enabled, name\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.035779s] ... 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-536fce7d-9d9a-4fcb-84ac-e25ad89170e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.064683s] ... 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-a066bb50-51de-460b-8a10-32864c69606a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_vendor_passthru_sync [0.046863s] ... 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-4ca2fa0d-38ec-4dec-b1a8-2b6f335b3ae6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"cat": "meow"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string [0.069223s] ... 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-edb0c197-3473-4f84-ab1a-71bc360b9e63
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.031113s] ... 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-7f795987-55a7-44f6-bd95-ed6d3a8cc672
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.338724s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c7f31e77-bb9b-4a3f-ad60-9c4084c16ec9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.805930+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-8999042f-ff5a-493b-9d17-5bc296bc1997
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:15.805930+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.020480s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.018765s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.035628s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-db15ae57-ee45-4fdb-8cea-957b3131ea8c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.018731s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.035907s] ... 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-db4b6b97-f6fc-4547-9bb8-258944bd7293
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "provision_state": "available", "maintenance": false, "instance_uuid": null, "last_error": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.040214s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.104754s] ... 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-becc094c-2075-4035-bf1f-2e681f5a0258
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.161291s] ... 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-32adfa3d-29ef-45d3-9e13-61c3ff9ad768
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_invalid_physnet_too_long [0.059346s] ... 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-ed3c9d1d-b910-42d4-994a-18eb769575c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.076397s] ... 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-9c86dec5-5b12-42ba-a5b0-20b1d9649a62
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"portgroups": [{"uuid": "0e83499e-8cc8-4c8e-b16b-468d1ce0e02e", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/0e83499e-8cc8-4c8e-b16b-468d1ce0e02e", "rel": "self"}, {"href": "http://localhost/portgroups/0e83499e-8cc8-4c8e-b16b-468d1ce0e02e", "rel": "bookmark"}]}, {"uuid": "71808ed7-178a-44fd-ae30-3a0f416b3882", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/71808ed7-178a-44fd-ae30-3a0f416b3882", "rel": "self"}, {"href": "http://localhost/portgroups/71808ed7-178a-44fd-ae30-3a0f416b3882", "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-a04f11d5-d278-4ad9-8419-3f36e4b0fd75
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"portgroups": [{"uuid": "0e83499e-8cc8-4c8e-b16b-468d1ce0e02e", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/0e83499e-8cc8-4c8e-b16b-468d1ce0e02e", "rel": "self"}, {"href": "http://localhost/portgroups/0e83499e-8cc8-4c8e-b16b-468d1ce0e02e", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=0e83499e-8cc8-4c8e-b16b-468d1ce0e02e"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.071558s] ... 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-2116f4a9-f9f3-4125-a406-2eb0117c2daf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_portgroups_subresource_patch [0.044180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/ffcc6f14-c400-4834-8e27-a0fdf756f384 WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e54fe6d7-3c6a-491e-b773-2b85822e0eba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.064719s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-06950494-cbd2-4465-ad8d-3a7468460ee1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.081646s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0948610-71ed-451d-987e-3058cf815e05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:16.039164+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_port.TestPatch.test_remove_local_link_connection_network_type [0.065614s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/71926632-7957-4940-88ae-7c65d6443d80 WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f2b2373c-e5ef-436f-80b2-54c58efedb98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "71926632-7957-4940-88ae-7c65d6443d80", "created_at": "2025-03-28T10:18:16.052521+00:00", "updated_at": "2025-03-28T10:18:16.083448+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/71926632-7957-4940-88ae-7c65d6443d80", "rel": "self"}, {"href": "http://localhost/ports/71926632-7957-4940-88ae-7c65d6443d80", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.036199s] ... 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-98c64127-45b3-4ec0-8ab7-776fc23aa903
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.069920s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-feeea35b-c2ca-4c42-ae5b-ba48c218a8f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.070458s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f26d56d2-ccd6-415e-8e5a-1179d3371740
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:16.128598+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.035169s] ... 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-39217385-9480-484c-90de-286c20e8cfcb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.031292s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.046347s] ... 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-ee406d28-459d-45bf-8972-5e1cf85e951e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.083287s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c5f63452-042c-4e31-b167-8c816e741347
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.325582s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.066354s] ... 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-11ee62d7-5f4f-4287-a9a5-2fb0d8806216
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "21f563b6-8a02-4224-930b-d283cde8c381", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/21f563b6-8a02-4224-930b-d283cde8c381", "rel": "self"}, {"href": "http://localhost/ports/21f563b6-8a02-4224-930b-d283cde8c381", "rel": "bookmark"}]}, {"uuid": "d2d1d261-a6ff-47a3-94ed-e53f37f59c42", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d2d1d261-a6ff-47a3-94ed-e53f37f59c42", "rel": "self"}, {"href": "http://localhost/ports/d2d1d261-a6ff-47a3-94ed-e53f37f59c42", "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-16307bf4-e87f-44ba-b469-94c0e3770827
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "21f563b6-8a02-4224-930b-d283cde8c381", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/21f563b6-8a02-4224-930b-d283cde8c381", "rel": "self"}, {"href": "http://localhost/ports/21f563b6-8a02-4224-930b-d283cde8c381", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=21f563b6-8a02-4224-930b-d283cde8c381"}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.018858s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.029386s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/123 123/ports WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for node: 123 123\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.017815s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.016791s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.102584s] ... 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-8bdbdae9-9363-4fdd-83cd-d0e43e38b42b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.231268+00:00", "updated_at": "2025-03-28T10:18:16.276260+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-408918bf-9001-4701-a9d5-0fa34323deea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.231268+00:00", "updated_at": "2025-03-28T10:18:16.305470+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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.045734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-31328962-fa20-48bd-8aa2-f8b9c91f6e71
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:16.306951+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.096018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-da80e88b-b8b2-44a3-8276-ffa14bb578aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_remove_node_id [0.037297s] ... 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-0762a15c-cd99-400c-b61b-6433009a1d9c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_uuid, physical_network, portgroup_uuid, pxe_enabled, name\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.032612s] ... 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-b0bf2212-acc3-4be6-b962-56c6cb338b83
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup None could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.086386s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aefdae88-a42f-46ed-8848-1eae588f6f34
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "c65df781-ff9c-4528-ace7-38ad0a69e5d1", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/c65df781-ff9c-4528-ace7-38ad0a69e5d1", "rel": "self"}, {"href": "http://localhost/ports/c65df781-ff9c-4528-ace7-38ad0a69e5d1", "rel": "bookmark"}]}, {"uuid": "fe05afda-9e5b-4cef-9bec-4c2f959b3d4a", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/fe05afda-9e5b-4cef-9bec-4c2f959b3d4a", "rel": "self"}, {"href": "http://localhost/ports/fe05afda-9e5b-4cef-9bec-4c2f959b3d4a", "rel": "bookmark"}]}, {"uuid": "0483739b-a174-45ff-849c-b22553ceaf91", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/0483739b-a174-45ff-849c-b22553ceaf91", "rel": "self"}, {"href": "http://localhost/ports/0483739b-a174-45ff-849c-b22553ceaf91", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=0483739b-a174-45ff-849c-b22553ceaf91"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.034174s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.042075s] ... 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-569b1504-ba28-427f-babe-aa1c20e0b11f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.072217s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-24ae48b7-8a84-436e-ae40-3a86cd83f801
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.045415s] ... 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-2a6001fc-f203-424b-9f82-ca5076b92a1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestPatch.test_remove_physical_network [0.067979s] ... 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-d39d51b2-2670-4820-b2ed-b97fd3b4c6bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.414664+00:00", "updated_at": "2025-03-28T10:18:16.451668+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.068198s] ... 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-b37c0c46-b8b6-424c-9610-9efe6b2a6575
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_collection_links_custom_fields [0.097509s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e7a7c838-da0b-4bee-9776-5fc8f477e59b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "593aae0e-cdeb-4958-9de0-88bf2e3bcf46", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/593aae0e-cdeb-4958-9de0-88bf2e3bcf46", "rel": "self"}, {"href": "http://localhost/ports/593aae0e-cdeb-4958-9de0-88bf2e3bcf46", "rel": "bookmark"}]}, {"uuid": "31753f8a-3146-4f24-88ca-a0f0615e16aa", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/31753f8a-3146-4f24-88ca-a0f0615e16aa", "rel": "self"}, {"href": "http://localhost/ports/31753f8a-3146-4f24-88ca-a0f0615e16aa", "rel": "bookmark"}]}, {"uuid": "e2176555-6fea-4b8f-b322-0ce8aae19ed3", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/e2176555-6fea-4b8f-b322-0ce8aae19ed3", "rel": "self"}, {"href": "http://localhost/ports/e2176555-6fea-4b8f-b322-0ce8aae19ed3", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=e2176555-6fea-4b8f-b322-0ce8aae19ed3"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.057203s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6c709552-bda0-415b-8fb7-c4ee957feac0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "16599877-2fd8-4214-b603-758eacdccba7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/16599877-2fd8-4214-b603-758eacdccba7", "rel": "self"}, {"href": "http://localhost/nodes/16599877-2fd8-4214-b603-758eacdccba7", "rel": "bookmark"}]}, {"uuid": "702366ac-d086-4345-8861-64c00036014d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/702366ac-d086-4345-8861-64c00036014d", "rel": "self"}, {"href": "http://localhost/nodes/702366ac-d086-4345-8861-64c00036014d", "rel": "bookmark"}]}, {"uuid": "f79f7fcd-50aa-47be-ac78-49c668b54800", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f79f7fcd-50aa-47be-ac78-49c668b54800", "rel": "self"}, {"href": "http://localhost/nodes/f79f7fcd-50aa-47be-ac78-49c668b54800", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.043903s] ... 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-83981adf-a379-4d0e-b4b0-46bfd7d5f7ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestListPorts.test_collection_links_default_limit [0.050179s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1369d51-4bf8-42f3-9bd5-07381415ac3b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "2c3eac5d-aca0-4f6f-9191-c65d5040af64", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/2c3eac5d-aca0-4f6f-9191-c65d5040af64", "rel": "self"}, {"href": "http://localhost/ports/2c3eac5d-aca0-4f6f-9191-c65d5040af64", "rel": "bookmark"}]}, {"uuid": "b8a36877-e241-4449-9020-14430c0212e7", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/b8a36877-e241-4449-9020-14430c0212e7", "rel": "self"}, {"href": "http://localhost/ports/b8a36877-e241-4449-9020-14430c0212e7", "rel": "bookmark"}]}, {"uuid": "692fc4f3-d1db-4e1e-971b-37fee3ef92e2", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/692fc4f3-d1db-4e1e-971b-37fee3ef92e2", "rel": "self"}, {"href": "http://localhost/ports/692fc4f3-d1db-4e1e-971b-37fee3ef92e2", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=692fc4f3-d1db-4e1e-971b-37fee3ef92e2"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.048973s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-98a6ff07-080d-4fa1-91ab-4f416e2c35a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "f0be3914-2e2d-4391-a8ee-4cd0df288cf5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f0be3914-2e2d-4391-a8ee-4cd0df288cf5", "rel": "self"}, {"href": "http://localhost/nodes/f0be3914-2e2d-4391-a8ee-4cd0df288cf5", "rel": "bookmark"}]}, {"uuid": "32af44cb-ea69-4225-ae33-7a3fa09aaa8b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/32af44cb-ea69-4225-ae33-7a3fa09aaa8b", "rel": "self"}, {"href": "http://localhost/nodes/32af44cb-ea69-4225-ae33-7a3fa09aaa8b", "rel": "bookmark"}]}, {"uuid": "66f0ec46-b505-4e2a-bf79-f7158e18f881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/66f0ec46-b505-4e2a-bf79-f7158e18f881", "rel": "self"}, {"href": "http://localhost/nodes/66f0ec46-b505-4e2a-bf79-f7158e18f881", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.040626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-94fdc3f2-b717-4a13-9fac-0005958cc440
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.558238+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.082835s] ... 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-99b076c7-a372-4f93-a9fa-e59c45c18049
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.121687s] ... 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-4a1f00ab-7ed2-4023-b3c1-c5962297957d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_detail_against_single [0.033863s] ... 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-8108a62b-ebd6-47cf-b310-5ced0c5ebddb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.038910s] ... 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-2bf0cfc3-4878-4df0-b7b1-4dd2828dc935
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_uuid, physical_network, portgroup_uuid, pxe_enabled, name\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.088558s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a6c13423-39aa-471b-952d-5fe8cc802da2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-280f769c-5b42-4511-b025-d56d6f04f378
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-e88f1f79-20f8-4f53-b22c-64efe27b3012
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-0df78725-f1a3-40df-9355-a10297c956ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-72bd5a15-1f84-404b-b0d2-24bccac432b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-8fd341f6-0330-4b87-a23c-20f6adee09b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-5d6c4682-a026-4475-b27d-f0415e7b6ffe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-de1da858-2840-4263-96da-d9fd5bbe7b84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.042576s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-7f318b45-4934-41d1-b54f-5bac899b8c80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.086729s] ... 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-0f1eeed6-35d1-4c6d-b019-feb65e087e19
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestListNodes.test_sort_key_not_allowed [0.053944s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-9d1a611f-914a-4678-b5a1-7cad6cfd9e53
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.042635s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1b75c1f3-3239-4a68-b112-d039353ac2a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:16.677352+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_port.TestPatch.test_replace_address_already_exist [0.074640s] ... 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-823989b4-5358-447a-b4c9-24085c690d7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.040804s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-167f7657-9f52-4377-a438-5532d300e01e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.720314+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, "links": [{"href": "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.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.068933s] ... 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-e673f9bb-bd6a-4973-bd2e-ba53a41141da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_replace_local_link_connection [0.065340s] ... 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-18fbebd2-22f4-46f6-b0aa-80557d0c080c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.727214+00:00", "updated_at": "2025-03-28T10:18:16.762883+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_port.TestListPorts.test_detail_query_false [0.042075s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e719f96f-c2ea-4ae9-9db8-889629b9354e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-d2c386df-da84-4fd1-88cf-45a8292e9edc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestListPorts.test_detail_sort_key_allowed [0.039752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac7a6ba2-d91c-4b63-82a1-86cbe77e9ee4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "867cb5cb-06be-4aa4-b79b-d19fb205f933", "created_at": "2025-03-28T10:18:16.800933+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, "links": [{"href": "http://localhost/v1/ports/867cb5cb-06be-4aa4-b79b-d19fb205f933", "rel": "self"}, {"href": "http://localhost/ports/867cb5cb-06be-4aa4-b79b-d19fb205f933", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "cef439f4-615a-4ee4-9445-f01f586ec4fb", "created_at": "2025-03-28T10:18:16.804883+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, "links": [{"href": "http://localhost/v1/ports/cef439f4-615a-4ee4-9445-f01f586ec4fb", "rel": "self"}, {"href": "http://localhost/ports/cef439f4-615a-4ee4-9445-f01f586ec4fb", "rel": "bookmark"}], "portgroup_uuid": null}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.069842s] ... 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-0059ba75-24f7-4480-b02a-4a3cc06dda5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestListNodes.test_unassociated_nodes_insensitive [0.130040s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-de669f3a-0d34-4f75-a370-f363fa0f3709
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "e28052ca-be83-48eb-84aa-cf69df5f0f2f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e28052ca-be83-48eb-84aa-cf69df5f0f2f", "rel": "self"}, {"href": "http://localhost/nodes/e28052ca-be83-48eb-84aa-cf69df5f0f2f", "rel": "bookmark"}]}, {"uuid": "1f853494-b864-41cc-9267-1cdbd77a3150", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1f853494-b864-41cc-9267-1cdbd77a3150", "rel": "self"}, {"href": "http://localhost/nodes/1f853494-b864-41cc-9267-1cdbd77a3150", "rel": "bookmark"}]}, {"uuid": "40afd5a1-2d3a-42c0-adcb-a40182e2eefe", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/40afd5a1-2d3a-42c0-adcb-a40182e2eefe", "rel": "self"}, {"href": "http://localhost/nodes/40afd5a1-2d3a-42c0-adcb-a40182e2eefe", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9c8b22a-8a02-4867-959d-e43b06acd19d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "e28052ca-be83-48eb-84aa-cf69df5f0f2f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e28052ca-be83-48eb-84aa-cf69df5f0f2f", "rel": "self"}, {"href": "http://localhost/nodes/e28052ca-be83-48eb-84aa-cf69df5f0f2f", "rel": "bookmark"}]}, {"uuid": "1f853494-b864-41cc-9267-1cdbd77a3150", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1f853494-b864-41cc-9267-1cdbd77a3150", "rel": "self"}, {"href": "http://localhost/nodes/1f853494-b864-41cc-9267-1cdbd77a3150", "rel": "bookmark"}]}, {"uuid": "40afd5a1-2d3a-42c0-adcb-a40182e2eefe", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/40afd5a1-2d3a-42c0-adcb-a40182e2eefe", "rel": "self"}, {"href": "http://localhost/nodes/40afd5a1-2d3a-42c0-adcb-a40182e2eefe", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.057131s] ... 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-22dca8d1-1cc5-4bac-8d82-1941a442c652
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.113774s] ... 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-f5c07704-cf5c-4e68-b046-ab496c203882
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.793519+00:00", "updated_at": "2025-03-28T10:18:16.877328+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.086566s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c6cdb584-7941-4ef6-afc5-50d1b0bddd5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "17dbe8a8-c2da-43d9-ba9a-58d3f600e87a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/17dbe8a8-c2da-43d9-ba9a-58d3f600e87a", "rel": "self"}, {"href": "http://localhost/nodes/17dbe8a8-c2da-43d9-ba9a-58d3f600e87a", "rel": "bookmark"}]}, {"uuid": "ec743cdb-bb19-46c9-8285-0c6b0169a742", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ec743cdb-bb19-46c9-8285-0c6b0169a742", "rel": "self"}, {"href": "http://localhost/nodes/ec743cdb-bb19-46c9-8285-0c6b0169a742", "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=ec743cdb-bb19-46c9-8285-0c6b0169a742"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.032511s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-70abb767-8c3d-4051-912f-7e08d4635f23
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.100270s] ... 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-ffcf172b-f433-4cda-91ac-a09d4619d627
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_replace_node_id [0.039709s] ... 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-37ddbff9-ac13-4686-8332-2fcf8d4ac1b5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_uuid, physical_network, portgroup_uuid, pxe_enabled, name\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.037885s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-835970aa-5e6f-40f8-877c-b2cb77834d9a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.046776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-acad4414-c70a-42ea-b8c7-3f0e9c407aae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.032154s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a22fedec-8421-481f-9b06-aaef23eded91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.064956s] ... 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-a99b7866-fa7e-4796-9bee-9a3e880e02dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:16.947549+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.047689s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-1b21213d-cc70-44c4-bf55-181056f84bc9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.031104s] ... 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-29c53e8b-2ac8-4425-909e-e80b3ab97f04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.045941s] ... 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-bf9f909e-64a1-446a-94a8-da8a1492ad7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.029703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-495014af-26cd-4958-aa5b-7e17d99acfd0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.059419s] ... 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-e396ab82-cec4-4a6e-a522-6a98a00d2c75
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.156977s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b05ff5f4-e7ea-42d2-ae87-83fa10442e58
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_get_all_by_node_name_non_admin [0.058275s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0d27184-f281-4f84-9504-d23247565156
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "501d87c2-0f79-46c3-8967-47e14bff6e3f", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/501d87c2-0f79-46c3-8967-47e14bff6e3f", "rel": "self"}, {"href": "http://localhost/ports/501d87c2-0f79-46c3-8967-47e14bff6e3f", "rel": "bookmark"}]}, {"uuid": "d965d606-25c4-4775-99e8-3728d1d02f98", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d965d606-25c4-4775-99e8-3728d1d02f98", "rel": "self"}, {"href": "http://localhost/ports/d965d606-25c4-4775-99e8-3728d1d02f98", "rel": "bookmark"}]}, {"uuid": "eebbe1de-b333-4db1-9452-197e1c4e2b8d", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/eebbe1de-b333-4db1-9452-197e1c4e2b8d", "rel": "self"}, {"href": "http://localhost/ports/eebbe1de-b333-4db1-9452-197e1c4e2b8d", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.070476s] ... 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-9477b5f6-8ebb-4d70-b263-bede992b401e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:17.059312+00:00", "updated_at": "2025-03-28T10:18:17.097787+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.073616s] ... 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-9fc00ea7-2546-47ce-a9d2-137ac5ae246f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.044061s] ... 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-1b080e58-b0f7-45e4-82c1-83491fbc4d1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.053054s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-75701f27-9429-4c8c-9d7c-45ec74191101
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.083935s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2f69a2fa-6097-423b-999a-ad95ccc09994
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_get_all_by_node_name_not_supported [0.045253s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-003e55e1-4111-45a2-be09-38ae5d89a2cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.077512s] ... 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-ae56f13d-3501-4e37-8465-6060797d47ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.098972s] ... 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-8b430713-b203-490a-89f6-835218370c5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "817fd091-396e-4533-a298-0bf22cd399c2", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/817fd091-396e-4533-a298-0bf22cd399c2", "rel": "self"}, {"href": "http://localhost/volume/connectors/817fd091-396e-4533-a298-0bf22cd399c2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6d20a39c-6227-4dd5-ba57-251d9484e81c", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6d20a39c-6227-4dd5-ba57-251d9484e81c", "rel": "self"}, {"href": "http://localhost/volume/connectors/6d20a39c-6227-4dd5-ba57-251d9484e81c", "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-b033554a-b571-45ab-b85e-9f6bff9f72a1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "817fd091-396e-4533-a298-0bf22cd399c2", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/817fd091-396e-4533-a298-0bf22cd399c2", "rel": "self"}, {"href": "http://localhost/volume/connectors/817fd091-396e-4533-a298-0bf22cd399c2", "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=817fd091-396e-4533-a298-0bf22cd399c2"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.101266s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8e23fa63-145e-4c85-ab5c-d77c0e261f7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_get_all_by_node_name_ok [0.060585s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a33eb6f2-57d8-4b22-aadd-6ece1f4c36b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "23711ec3-8f17-4232-94c4-be76b845b452", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/23711ec3-8f17-4232-94c4-be76b845b452", "rel": "self"}, {"href": "http://localhost/ports/23711ec3-8f17-4232-94c4-be76b845b452", "rel": "bookmark"}]}, {"uuid": "a0717475-22b6-4346-8859-8eefa83e26a8", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a0717475-22b6-4346-8859-8eefa83e26a8", "rel": "self"}, {"href": "http://localhost/ports/a0717475-22b6-4346-8859-8eefa83e26a8", "rel": "bookmark"}]}, {"uuid": "ee927912-9c8e-4c71-8970-6dde4fe6385e", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/ee927912-9c8e-4c71-8970-6dde4fe6385e", "rel": "self"}, {"href": "http://localhost/ports/ee927912-9c8e-4c71-8970-6dde4fe6385e", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.074473s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '9ac4f6fd-a200-40ee-9b75-570b04b01d63', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f8bd22f0-6e35-4532-951f-709333f9048e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:17.254555+00:00", "updated_at": "2025-03-28T10:18:17.296179+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": "9ac4f6fd-a200-40ee-9b75-570b04b01d63"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.067000s] ... 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-d07e2233-feb6-4ee0-8463-d4037b9386ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.076232s] ... 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-78cae1cb-830a-46c2-b0df-d104cd571f18
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:17.308803+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_port.TestPatch.test_replace_portgroup_uuid_old_api [0.040848s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '17e9153e-18fc-40a9-ac25-71134c9758db', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-03d11672-6178-43a0-b7ac-c4350cc2beac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.082032s] ... 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-c8c1ce1a-2249-4381-b00f-07365440ac6a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestListNodes.test_volume_connectors_subresource_noid [0.074168s] ... 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_port.TestPatch.test_replace_portgroup_uuid_remove [0.064166s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '9d931665-988c-4bd7-9a6c-161d90f5aa02', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-301c306c-314f-41d0-919b-5a7c89628d80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:17.368578+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.039287s] ... 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-349c31ad-ae7e-497a-b001-270947e2f36c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.031065s] ... 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-dfe6d897-a590-415c-b15e-e9bce088e854
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.117650s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a1721fb7-b01f-47a1-90ed-efdd23f24f94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:17.405437+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.115693s] ... 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-029a028c-e2a6-4973-b49d-5e2c2e30d35a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.083057s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '778ed96b-9808-4f77-a311-9ce1691b4718', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': 'dd173197-9e6f-4ed3-ab35-754bb3422325', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-513e93df-5de3-46a1-aa83-936030f6f704
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:17.435895+00:00", "updated_at": "2025-03-28T10:18:17.485814+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": "dd173197-9e6f-4ed3-ab35-754bb3422325"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.043328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-67e4a43f-9991-4661-8922-081e5b528284
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:17.481584+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_port.TestPatch.test_replace_singular [0.060040s] ... 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-91e81ccb-10dd-43cd-bd69-ceac1e628f31
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:17.517547+00:00", "updated_at": "2025-03-28T10:18:17.549008+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_node.TestListNodes.test_volume_targets_subresource [0.060838s] ... 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-cb43091e-5a22-4ed3-b241-85f13d1b25ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "30064d6d-3f6d-47ff-b96f-4cbc20c7e5c2", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/30064d6d-3f6d-47ff-b96f-4cbc20c7e5c2", "rel": "self"}, {"href": "http://localhost/volume/targets/30064d6d-3f6d-47ff-b96f-4cbc20c7e5c2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d5b7a58a-f6d0-4cdf-ae6e-e2941a06bc6f", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d5b7a58a-f6d0-4cdf-ae6e-e2941a06bc6f", "rel": "self"}, {"href": "http://localhost/volume/targets/d5b7a58a-f6d0-4cdf-ae6e-e2941a06bc6f", "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-a650656e-bf36-4bf6-9191-140a15c56e75
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "30064d6d-3f6d-47ff-b96f-4cbc20c7e5c2", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/30064d6d-3f6d-47ff-b96f-4cbc20c7e5c2", "rel": "self"}, {"href": "http://localhost/volume/targets/30064d6d-3f6d-47ff-b96f-4cbc20c7e5c2", "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=30064d6d-3f6d-47ff-b96f-4cbc20c7e5c2"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.102760s] ... 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-f87cffc1-e08f-413f-9bd6-aa583e183ce6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:17.511154+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.031989s] ... 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-2010bc22-7440-492e-80c8-b12be70fed8b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.039720s] ... 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-8a547cc8-8fcb-49eb-b992-3827ea3da8e3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.141976s] ... 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-6901a1f7-72af-42aa-af0d-c2e2e882914d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestListNodes.test_volume_targets_subresource_noid [0.034000s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/volume/targets WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.071832s] ... 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-46bcdc01-249d-4a59-8d2a-9fd14276d05e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestPatch.test_update_address_invalid_format [0.048520s] ... 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-a641a076-8c5c-493c-baeb-e04ae933c19b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.033914s] ... 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-a4e8cdc6-e764-482e-9774-654521dd99b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for port_ident: 52:54:00:cf:2d:31\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent [0.082377s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/cb8f80c6-b7d1-421e-b5cc-8f92a351f4cc WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c6cf506b-02ec-44b9-8915-654efbe3b6de
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:17.648383+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.094343s] ... 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-a49324fe-18d0-4006-a86d-b61cda6fbf57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-03-28T10:18:17.685214+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.063955s] ... 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-9efd301e-5a14-4277-b05c-cc50c8e64ba5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:17.701128+00:00", "updated_at": "2025-03-28T10:18:17.736737+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.039974s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/155cd86a-d24a-4a88-aa87-99c97702a523 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-b143f2f0-31a8-4266-a752-396e29be5728
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.151639s] ... 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-59c40a28-19fc-405d-820f-72ad32ad075f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_update_in_inspecting_allowed [0.067788s] ... 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-0fb8e45b-c78b-46e6-ab78-3a68b7f94cfa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:17.768224+00:00", "updated_at": "2025-03-28T10:18:17.805142+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.102508s] ... 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-2e86955c-aef4-4791-bd37-25727bd2cc38
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.098141s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/21dd3d1d-bb63-4df8-940f-42a6cb88edeb WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2e73a12b-5507-4719-9a54-a8b038bd8cc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.created_at AS allocations_created_at, allocations.updated_at AS allocations_updated_at, allocations.version AS allocations_version, 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 \\nFROM allocations \\nWHERE allocations.id = ?]\\n[parameters: (<MagicMock name='update_node().allocation_id' id='140164895510336'>,)]\\n(Background on this error at: https://sqlalche.me/e/14/rvf5)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.094470s] ... 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-ce80ffd4-0911-4634-8c25-104d614cc59d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.059215s] ... 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-301510c6-8d48-4f20-91fc-f77966bd4c8b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.065771s] ... 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-d29839f2-0ce5-44b0-8bed-68864fa60b26
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_get_collection_custom_fields [0.041713s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c0e4241-3392-41c9-a2bc-32338c6076df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "d5e05e16-c759-4d94-932b-4f5a13385459", "extra": {}, "links": [{"href": "http://localhost/v1/ports/d5e05e16-c759-4d94-932b-4f5a13385459", "rel": "self"}, {"href": "http://localhost/ports/d5e05e16-c759-4d94-932b-4f5a13385459", "rel": "bookmark"}]}, {"uuid": "974730eb-63d7-4657-b8a3-93d72d754b34", "extra": {}, "links": [{"href": "http://localhost/v1/ports/974730eb-63d7-4657-b8a3-93d72d754b34", "rel": "self"}, {"href": "http://localhost/ports/974730eb-63d7-4657-b8a3-93d72d754b34", "rel": "bookmark"}]}, {"uuid": "7efd1f67-b91a-49a3-ae2f-4c29b89cb266", "extra": {}, "links": [{"href": "http://localhost/v1/ports/7efd1f67-b91a-49a3-ae2f-4c29b89cb266", "rel": "self"}, {"href": "http://localhost/ports/7efd1f67-b91a-49a3-ae2f-4c29b89cb266", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.124803s] ... 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-cd5f9f5b-d1f7-41d6-8ffd-039902fe5838
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.041748s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-060f30c8-b028-40b8-93ae-fceb07f3dcab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a1c7c7d2-e50a-431d-985a-b4e8518fbd4c", "rel": "self"}, {"href": "http://localhost/ports/a1c7c7d2-e50a-431d-985a-b4e8518fbd4c", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/9fcec955-844a-42e8-8b62-97f9036e62c8", "rel": "self"}, {"href": "http://localhost/ports/9fcec955-844a-42e8-8b62-97f9036e62c8", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=9fcec955-844a-42e8-8b62-97f9036e62c8"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.036780s] ... 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-f10d46a7-1c39-4a39-9850-de0969b81d27
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.095921s] ... 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-adbe261d-b304-48f8-8d3d-e34e283d643c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPatch.test_update_not_found [0.074046s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/e0f5ee38-9b83-400a-a775-941f0cb7ef94 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-adf8890c-f894-46d3-8527-6b65919aaded
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port e0f5ee38-9b83-400a-a775-941f0cb7ef94 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.037914s] ... 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-f717a142-3a0c-4051-b44b-6225db7896c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.064277s] ... 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-1cc59e79-6c69-4000-8076-12e3f15a745d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_get_custom_fields_is_smartnic [0.043796s] ... 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-0e5e5fce-d6f1-4c1f-a269-7df71140d4c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-50c834a6-2b7b-43f5-a5ec-114e6f0a6758
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.53
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "is_smartnic": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.047502s] ... 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-30468d34-9b4f-4075-bf35-d23796ed2059
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-84abe8c9-1c7f-40f3-997c-076edd26c0c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.060520s] ... 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-dd4ccc86-67e7-437b-a198-92e09261a8d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestNodeParentNodePatch.test_node_remove_parent [0.310133s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/988bf817-8cf7-40c3-b5b6-933f74eb0a99 WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ea9f0df-1496-464d-85ef-4e703370dc72
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:18.100185+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.130914s] ... 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-dd9f1e64-444b-4275-8fc0-9e89ff5b969e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.083800+00:00", "updated_at": "2025-03-28T10:18:18.151341+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.061474s] ... 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-1846c6e9-52b8-4783-9b4e-0fab526b1774
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.183741+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard [0.075459s] ... 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-6860164a-f41a-4786-8e36-cd5563d89fc6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:18.182194+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.093774s] ... 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-171d833c-5c7e-4cce-bb8b-6f6ae6208de6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.039471s] ... 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-f19c4274-0f81-48b7-84b1-9929c37f1762
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.037314s] ... 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-daeeb7bf-0423-46ac-9d3a-be41acb4a767
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.022014s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.123167s] ... 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-8268d3aa-2898-4292-9c60-9c6965b1f1d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_get_one [0.053557s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b40c98d-d10c-410b-b54f-eba9cb18d049
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.274668+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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.020558s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.018348s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.036634s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=address,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5f73d2b4-f619-480e-bb5f-524da4b48fa6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"address": "52:54:00:cf:2d:31", "extra": {}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.019327s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.037793s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e9c72e4c-a643-480b-80d4-e91ae8d492d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.349545+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.086208s] ... 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-7d600124-3192-4cd9-8e65-351e41a80a00
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.045226s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6273dc3c-fdf6-4943-8141-88000cd7bb1d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.387558+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-6832d17d-6e17-44f2-91de-97d4b2a05223
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.387558+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.065296s] ... 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-e03acde7-46cf-4e3a-9c14-418d46e5ccdb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestNodeShardPost.test_create_node_with_shard [0.173616s] ... 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-9e4d52e4-c58b-453f-88a4-b41222a38ec1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:18.407398+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-13a46404-ebc7-471f-8482-5cfc467fb7fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:18.407398+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "dep
    loy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.046058s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5dbd3e2f-eed2-456c-9e38-9fa49d5ba8bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.433398+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-dfe1dbd3-4e9b-4b57-a871-717835cda29c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.433398+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.066655s] ... 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-b7c87072-c0e7-47dc-94ca-240c2a3b8f86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.067639s] ... 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-69366632-c7e6-4500-b312-aa0d6de264b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.203420s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach [0.035420s] ... 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-f83f6ee3-ed12-4e68-8af0-0259de12a8f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.099700s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-da19d8f6-2add-4950-b73c-bbc873223743
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.500246+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-b6335b00-fa09-4368-8e5d-e700af9e3fc2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.53
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.500246+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.021519s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_device_type [0.031756s] ... 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-0b206525-64c8-4fb7-8236-c8d29f23695f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'cat' is not one of ['disk', 'cdrom', 'floppy']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.021905s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.018199s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.030685s] ... 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-32235a8f-9212-4456-af23-589d5d2ce4cf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unsupported or missing URL scheme: \", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.021364s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_device_type [0.031102s] ... 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-2a108494-3c40-4215-afe3-3b351d4ae120
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'device_type' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.136152s] ... 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-ba65cc9b-2b8b-4b10-87ba-b26fc0bfe496
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_collection_links [0.049231s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8387a230-310d-4eac-af92-5ea19c0f6f2f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "53cbad89-a4d7-4bd8-92e8-487fc43cc84d", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/53cbad89-a4d7-4bd8-92e8-487fc43cc84d", "rel": "self"}, {"href": "http://localhost/portgroups/53cbad89-a4d7-4bd8-92e8-487fc43cc84d", "rel": "bookmark"}]}, {"uuid": "1d9400da-e614-437c-88c1-318f8a92efa9", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/1d9400da-e614-437c-88c1-318f8a92efa9", "rel": "self"}, {"href": "http://localhost/portgroups/1d9400da-e614-437c-88c1-318f8a92efa9", "rel": "bookmark"}]}, {"uuid": "debedff0-c988-4279-9b62-b23269d26c78", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/debedff0-c988-4279-9b62-b23269d26c78", "rel": "self"}, {"href": "http://localhost/portgroups/debedff0-c988-4279-9b62-b23269d26c78", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=debedff0-c988-4279-9b62-b23269d26c78"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_image_url [0.036330s] ... 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-e5070d20-b276-46c1-8fcb-0fbdb4475520
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"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_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.130938s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-73f854d9-10b0-4b06-beae-4fc6104b8e7f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.619229+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-6a96635f-ea88-4bac-afc9-d6a875ead0ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.619229+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-9d394ca7-3433-4f22-8a6c-a741c5161668
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.619229+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}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_required_only [0.033859s] ... 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-6b703ec2-cfc7-4238-aaf4-350153c32934
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.070916s] ... 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-98a416df-0e65-4508-8285-a75340af0827
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestNodeVmedia.test_attach_wrong_version [0.027366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'http://image'} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.086496s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5bf7c23f-91af-4f66-9bc8-349f3bad9067
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "f7013b54-0693-42f4-97f2-2b63a80cdeeb", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/f7013b54-0693-42f4-97f2-2b63a80cdeeb", "rel": "self"}, {"href": "http://localhost/portgroups/f7013b54-0693-42f4-97f2-2b63a80cdeeb", "rel": "bookmark"}]}, {"uuid": "71d8763e-eb42-4305-bee0-72d1d2905e55", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/71d8763e-eb42-4305-bee0-72d1d2905e55", "rel": "self"}, {"href": "http://localhost/portgroups/71d8763e-eb42-4305-bee0-72d1d2905e55", "rel": "bookmark"}]}, {"uuid": "f3c61d80-bef6-4c9c-8b2a-e1fd28fb46e8", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/f3c61d80-bef6-4c9c-8b2a-e1fd28fb46e8", "rel": "self"}, {"href": "http://localhost/portgroups/f3c61d80-bef6-4c9c-8b2a-e1fd28fb46e8", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=f3c61d80-bef6-4c9c-8b2a-e1fd28fb46e8"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.032841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content
Openstack-Request-Id: req-35002cd6-4c8e-4595-bd71-9a869ec926b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.069215s] ... 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-ed19cf2d-6bfa-451e-8ce0-07c30d702f5e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.105878s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9e7274ee-ded8-42df-b8a3-8a451e585d0c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.751950+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-52cf23b2-7fb5-4382-a0b5-22ef8c270f3f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.751950+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}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.034175s] ... 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-3b7d644d-108b-4043-a443-fbb602955e2a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.032851s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content
Openstack-Request-Id: req-214ddad3-5c4d-45dc-8082-653c6b895325
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.063366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1988298-f58b-4ec0-8365-9b538170cbb7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.853699+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.031554s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content
Openstack-Request-Id: req-3864673b-5423-4659-b830-583394bc31ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.079580s] ... 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-0dfcbaa6-25ce-4d0e-a5ed-6bd8de2a8850
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_collection_links_default_limit [0.117144s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3a0121ce-e43b-4b06-9442-40ec8c687d35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "75f7e11f-4386-48fd-87ac-3acbc11da1dd", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/75f7e11f-4386-48fd-87ac-3acbc11da1dd", "rel": "self"}, {"href": "http://localhost/portgroups/75f7e11f-4386-48fd-87ac-3acbc11da1dd", "rel": "bookmark"}]}, {"uuid": "733f4989-f996-41a5-9ef4-401759276010", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/733f4989-f996-41a5-9ef4-401759276010", "rel": "self"}, {"href": "http://localhost/portgroups/733f4989-f996-41a5-9ef4-401759276010", "rel": "bookmark"}]}, {"uuid": "9784aa46-77d6-4a3a-b28c-49c9967f182d", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/9784aa46-77d6-4a3a-b28c-49c9967f182d", "rel": "self"}, {"href": "http://localhost/portgroups/9784aa46-77d6-4a3a-b28c-49c9967f182d", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=9784aa46-77d6-4a3a-b28c-49c9967f182d"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_device_types [0.045626s] ... 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-6f228417-eb9b-45d2-8b02-e0f576e8e1f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"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_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.055882s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f4fed5d2-33e8-4f1c-ae51-834231bdfa8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.897914+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-5b7e660f-1db0-4100-b095-b319a8409894
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:18.897914+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_version [0.031046s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.056880s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-28ae9651-0216-47b7-a87f-b14bde6c1ff9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:18.938246+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_port.TestListPorts.test_links [0.054773s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/0779aea2-ca36-4c5a-b385-9815a10a53d9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c4664618-f2eb-4fba-b722-afa7ecbafe96
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "0779aea2-ca36-4c5a-b385-9815a10a53d9", "created_at": "2025-03-28T10:18:18.950183+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/0779aea2-ca36-4c5a-b385-9815a10a53d9", "rel": "self"}, {"href": "http://localhost/ports/0779aea2-ca36-4c5a-b385-9815a10a53d9", "rel": "bookmark"}]}
GET /v1/ports/0779aea2-ca36-4c5a-b385-9815a10a53d9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b97d29f-11fe-47c6-b155-54c4dc616678
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "0779aea2-ca36-4c5a-b385-9815a10a53d9", "created_at": "2025-03-28T10:18:18.950183+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/0779aea2-ca36-4c5a-b385-9815a10a53d9", "rel": "self"}, {"href": "http://localhost/ports/0779aea2-ca36-4c5a-b385-9815a10a53d9", "rel": "bookmark"}]}
GET /ports/0779aea2-ca36-4c5a-b385-9815a10a53d9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2776bd0-c4ad-434b-84a6-deb564acabd2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "0779aea2-ca36-4c5a-b385-9815a10a53d9", "created_at": "2025-03-28T10:18:18.950183+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/0779aea2-ca36-4c5a-b385-9815a10a53d9", "rel": "self"}, {"href": "http://localhost/ports/0779aea2-ca36-4c5a-b385-9815a10a53d9", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.050340s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.074300s] ... 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-d556739d-29d8-4caa-9383-7c4fc09e067d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.038994s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.069975s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b8c04fc-13f4-44ea-a1fa-8f8cdf78dc2f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "created_at": "2025-03-28T10:18:19.004896+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/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "rel": "self"}, {"href": "http://foo/ports/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "rel": "bookmark"}]}
GET /v1/ports/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-24e3754c-ad25-40f1-aef1-8e24cf692c4a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "created_at": "2025-03-28T10:18:19.004896+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/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "rel": "self"}, {"href": "http://foo/ports/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "rel": "bookmark"}]}
GET /ports/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-76094eef-ebb9-4ca1-9194-a02bdb5b4fb6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "created_at": "2025-03-28T10:18:19.004896+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/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "rel": "self"}, {"href": "http://foo/ports/9dfa830b-3b23-4549-9fe8-6d5c44ef6ceb", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.051142s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c96a6a20-15e8-45af-b90d-73af0ce3a3f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:19.065533+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.057173s] ... 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-079018f4-6a15-4943-9b27-3ddb4c92f9ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.038169s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden [0.090246s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1495851e-bc3c-4ce7-9efb-f114730a47fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.038847s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-957a48b0-3ab0-42ea-99ac-f25e780aeda4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:19.148506+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.278922s] ... 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-9f567ca5-a173-4dd5-a619-bae9abef7af1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_list_non_admin_forbidden_no_project [0.054141s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b954f64d-f2c6-4ab6-9553-979a4e198465
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.067139s] ... 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-469c4869-cd8a-446c-a533-91a4d1fe634a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_detail_query_false [0.074391s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6f5afa3c-7fd1-4c02-91ff-c0995579312b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-ccf6234f-fcdf-41f3-89f8-ac94b0d11f32
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestListPorts.test_many [0.050232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7ba20e45-0dfe-4494-9fa2-5f1ba54c18c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "3a7a778f-41ba-42ff-9f3c-73a9637dc650", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/3a7a778f-41ba-42ff-9f3c-73a9637dc650", "rel": "self"}, {"href": "http://localhost/ports/3a7a778f-41ba-42ff-9f3c-73a9637dc650", "rel": "bookmark"}]}, {"uuid": "f94c2f99-fc51-4863-a9bc-68f89cfbd6ee", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/f94c2f99-fc51-4863-a9bc-68f89cfbd6ee", "rel": "self"}, {"href": "http://localhost/ports/f94c2f99-fc51-4863-a9bc-68f89cfbd6ee", "rel": "bookmark"}]}, {"uuid": "f8ca86f9-d507-46f4-94c9-b73ff342c282", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/f8ca86f9-d507-46f4-94c9-b73ff342c282", "rel": "self"}, {"href": "http://localhost/ports/f8ca86f9-d507-46f4-94c9-b73ff342c282", "rel": "bookmark"}]}, {"uuid": "2cd724b5-d373-4656-98ab-7cc0b4681fd8", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/2cd724b5-d373-4656-98ab-7cc0b4681fd8", "rel": "self"}, {"href": "http://localhost/ports/2cd724b5-d373-4656-98ab-7cc0b4681fd8", "rel": "bookmark"}]}, {"uuid": "81b89724-bc65-4554-8b17-4e6acaceb95e", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/81b89724-bc65-4554-8b17-4e6acaceb95e", "rel": "self"}, {"href": "http://localhost/ports/81b89724-bc65-4554-8b17-4e6acaceb95e", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.187285s] ... 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-6aede3c6-d018-4587-8928-cf45bb1d4dd0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:19.144865+00:00", "updated_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.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.072335s] ... 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-95b46466-98eb-4687-9e78-c9b30987be21
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_many_non_admin [0.055172s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3e123a0b-54c9-472b-8c43-6d6618f0d467
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "733fd8c3-e268-4410-bb8a-383e194425f1", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/733fd8c3-e268-4410-bb8a-383e194425f1", "rel": "self"}, {"href": "http://localhost/ports/733fd8c3-e268-4410-bb8a-383e194425f1", "rel": "bookmark"}]}, {"uuid": "0d609d48-f2ec-439a-b37d-319346563c98", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/0d609d48-f2ec-439a-b37d-319346563c98", "rel": "self"}, {"href": "http://localhost/ports/0d609d48-f2ec-439a-b37d-319346563c98", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.090523s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4ae63269-6981-48f0-b12b-e609b733aadd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "261922f3-939f-4be5-a5f2-df6c320dbbff", "created_at": "2025-03-28T10:18:19.304165+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/261922f3-939f-4be5-a5f2-df6c320dbbff", "rel": "self"}, {"href": "http://localhost/portgroups/261922f3-939f-4be5-a5f2-df6c320dbbff", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/261922f3-939f-4be5-a5f2-df6c320dbbff/ports", "rel": "self"}, {"href": "http://localhost/portgroups/261922f3-939f-4be5-a5f2-df6c320dbbff/ports", "rel": "bookmark"}]}, {"uuid": "b27238ca-637f-4f09-a746-258486e6ada6", "created_at": "2025-03-28T10:18:19.297548+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/b27238ca-637f-4f09-a746-258486e6ada6", "rel": "self"}, {"href": "http://localhost/portgroups/b27238ca-637f-4f09-a746-258486e6ada6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b27238ca-637f-4f09-a746-258486e6ada6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b27238ca-637f-4f09-a746-258486e6ada6/ports", "rel": "bookmark"}]}, {"uuid": "5a13506e-2ebd-43ce-a3ec-7c17f49d6d10", "created_at": "2025-03-28T10:18:19.282531+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/5a13506e-2ebd-43ce-a3ec-7c17f49d6d10", "rel": "self"}, {"href": "http://localhost/portgroups/5a13506e-2ebd-43ce-a3ec-7c17f49d6d10", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/5a13506e-2ebd-43ce-a3ec-7c17f49d6d10/ports", "rel": "self"}, {"href": "http://localhost/portgroups/5a13506e-2ebd-43ce-a3ec-7c17f49d6d10/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.039297s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d3d5188c-8417-442d-a4a9-803e50ae50e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.067107s] ... 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-a648a917-0d1d-48af-9ee4-395e599bc8dc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.072473s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f0483f95-01e3-4114-80c7-8954cf2225fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_port.TestListPorts.test_port_by_address [0.045192s] ... 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-e15fa5ed-47fa-4f85-98e2-34fa33d76e5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "d1c775e8-ac58-4277-b48b-0c2199991287", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/d1c775e8-ac58-4277-b48b-0c2199991287", "rel": "self"}, {"href": "http://localhost/ports/d1c775e8-ac58-4277-b48b-0c2199991287", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.032679s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c885c31a-d605-4f7e-b66d-d1a06b1de437
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.155880s] ... 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-395a392a-3149-49f7-b2df-1ca9b37ed7b5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:19.335761+00:00", "updated_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_port.TestListPorts.test_port_by_address_invalid_address_format [0.063935s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-69d02169-a2b5-406f-906d-8d750540417c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.040988s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-553550eb-84fb-459e-b7b3-b2e03906fb35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.123784s] ... 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-f1a63d5a-e3ca-473c-884a-24172f57ab66
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.033228s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6a8e6bfd-6e79-4859-8c2d-c2ad45091277
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.028483s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5cf8da9f-ba6c-4cf2-8af2-f4e4b569a91a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.094452s] ... 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-e8abca29-d18b-4c16-a4e8-6c2351c5f0d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:19.472582+00:00", "updated_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.TestPatch.test_add_root_non_existent [0.046646s] ... 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-6bb2696f-17c7-4e6a-9ef5-b1e3b59a7396
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.051524s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e661a19b-4534-4c9f-9404-58b78378c098
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "f02d867f-1a72-4ed1-bffb-54ebd73d60d0", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/f02d867f-1a72-4ed1-bffb-54ebd73d60d0", "rel": "self"}, {"href": "http://localhost/portgroups/f02d867f-1a72-4ed1-bffb-54ebd73d60d0", "rel": "bookmark"}]}, {"uuid": "f83867f5-da65-4b6c-b574-f6b09b02ae7e", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/f83867f5-da65-4b6c-b574-f6b09b02ae7e", "rel": "self"}, {"href": "http://localhost/portgroups/f83867f5-da65-4b6c-b574-f6b09b02ae7e", "rel": "bookmark"}]}, {"uuid": "72fc1363-7017-48fb-b6ff-0ac991f64a51", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/72fc1363-7017-48fb-b6ff-0ac991f64a51", "rel": "self"}, {"href": "http://localhost/portgroups/72fc1363-7017-48fb-b6ff-0ac991f64a51", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.037943s] ... 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-e2758f15-1e36-415b-a508-933d83544b2d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:19.616098+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.149212s] ... 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-a2721d26-65a1-4666-9b24-5dcda4ccd4bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_add_state_in_cleaning [0.101381s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/24dd7cee-bace-4ca4-ae0c-bc5d98228dc8 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-9368c187-e3e4-49d9-beed-7a73e211c2aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 24dd7cee-bace-4ca4-ae0c-bc5d98228dc8 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin [0.264669s] ... 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-72929fdf-37a7-496a-ad8e-d339ae84f09a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "eeef4f2f-ad3b-4633-a210-37eaf62ade8a", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/eeef4f2f-ad3b-4633-a210-37eaf62ade8a", "rel": "self"}, {"href": "http://localhost/ports/eeef4f2f-ad3b-4633-a210-37eaf62ade8a", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.106674s] ... 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-30c6febd-bd77-4d4a-98e2-05d715efcb2d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.048388s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7724b7e4-61a4-449a-aa99-cb6948a4c0a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "b30a89c2-5483-4503-be2a-5b2c9221593f", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/b30a89c2-5483-4503-be2a-5b2c9221593f", "rel": "self"}, {"href": "http://localhost/portgroups/b30a89c2-5483-4503-be2a-5b2c9221593f", "rel": "bookmark"}]}, {"uuid": "3e6657ce-641e-49ce-9125-6bc91c2bc758", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/3e6657ce-641e-49ce-9125-6bc91c2bc758", "rel": "self"}, {"href": "http://localhost/portgroups/3e6657ce-641e-49ce-9125-6bc91c2bc758", "rel": "bookmark"}]}, {"uuid": "07482b50-ae42-49f1-9a96-14143bd5a49c", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/07482b50-ae42-49f1-9a96-14143bd5a49c", "rel": "self"}, {"href": "http://localhost/portgroups/07482b50-ae42-49f1-9a96-14143bd5a49c", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.096014s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b3c9d23d-217b-4665-a48c-ede3135e17ca WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-30c99a9d-0a87-4816-8aae-91fbb898b6b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b3c9d23d-217b-4665-a48c-ede3135e17ca", "created_at": "2025-03-28T10:18:19.742942+00:00", "updated_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/b3c9d23d-217b-4665-a48c-ede3135e17ca", "rel": "self"}, {"href": "http://localhost/nodes/b3c9d23d-217b-4665-a48c-ede3135e17ca", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b3c9d23d-217b-4665-a48c-ede3135e17ca/ports", "rel": "self"}, {"href": "http://localhost/nodes/b3c9d23d-217b-4665-a48c-ede3135e17ca/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.153997s] ... 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-a371f56b-8f42-44a2-a2d2-098beac65dc1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.055940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ef2d5647-a3fe-4d80-a713-e70545495d9d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/c3cc81ab-f882-4d97-9d4b-07e2e8550b1a", "rel": "self"}, {"href": "http://localhost/portgroups/c3cc81ab-f882-4d97-9d4b-07e2e8550b1a", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/a1525d9e-2af4-44c8-a115-40a53d142f09", "rel": "self"}, {"href": "http://localhost/portgroups/a1525d9e-2af4-44c8-a115-40a53d142f09", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=a1525d9e-2af4-44c8-a115-40a53d142f09"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match [0.108595s] ... 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-0abf458c-e82f-4f82-a17a-0b4612e0643b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.063203s] ... 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-00f41472-060b-408e-b8bd-ff50c7b08ca6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.034474s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-e3fba29b-e138-41cd-a3bb-a63ccc94539f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.076036s] ... 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-cfb4af40-eb8c-44d4-bdf8-b22ff509ddcb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.044235s] ... 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-766e1d2a-86a9-4460-bc25-fdeb9e9bb77c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.072351s] ... 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-6cf101e2-2174-4121-b13d-d46f4a36982b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.042296s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c682b34f-5e42-4e28-b13f-06c17c6f32f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:19.946427+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.103958s] ... 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-fe268044-d255-4dc4-92ee-f393d7031420
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [0.079116s] ... 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-d597aa3d-02b3-4ef3-9ff9-32f8be046ad1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_portgroups_subresource_invalid_ident [0.075832s] ... 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\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.043738s] ... 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-34c44375-58cf-4e93-923e-0838eb42acfd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestListPorts.test_portgroups_subresource_node_not_found [0.030601s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.073830s] ... 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-b3c774d8-768a-41e3-a625-8bdb09801970
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_sort_key [0.048124s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f522a34-0ebd-4c63-b99b-69af6c228e63
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "93310d36-9136-4fa8-b355-eeee2bfa9950", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/93310d36-9136-4fa8-b355-eeee2bfa9950", "rel": "self"}, {"href": "http://localhost/ports/93310d36-9136-4fa8-b355-eeee2bfa9950", "rel": "bookmark"}]}, {"uuid": "a124098e-cc76-4804-9536-61da8647afa2", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a124098e-cc76-4804-9536-61da8647afa2", "rel": "self"}, {"href": "http://localhost/ports/a124098e-cc76-4804-9536-61da8647afa2", "rel": "bookmark"}]}, {"uuid": "df866076-ca76-4d1a-a115-ae70f2a529fa", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/df866076-ca76-4d1a-a115-ae70f2a529fa", "rel": "self"}, {"href": "http://localhost/ports/df866076-ca76-4d1a-a115-ae70f2a529fa", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.076153s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.119447s] ... 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-05962014-d19d-444b-905b-6b907ad95cdb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.048280s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5d167472-12a4-4bd0-ab29-d9d5af115545
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "64fdcfc7-2ecb-4d06-84d8-d02c1dd6bd54", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/64fdcfc7-2ecb-4d06-84d8-d02c1dd6bd54", "rel": "self"}, {"href": "http://localhost/ports/64fdcfc7-2ecb-4d06-84d8-d02c1dd6bd54", "rel": "bookmark"}]}, {"uuid": "57c4a04b-a3f5-47b9-b6fb-684e4334dd66", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/57c4a04b-a3f5-47b9-b6fb-684e4334dd66", "rel": "self"}, {"href": "http://localhost/ports/57c4a04b-a3f5-47b9-b6fb-684e4334dd66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.057046s] ... 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-d9387596-1368-4f50-90a9-e17a7b4e81e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.103966s] ... 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-d8037e34-8c87-47fa-9755-4f44ecf9af5f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestListPorts.test_sort_key_invalid [0.042224s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0f4ed590-b351-40e9-8c0e-6b7028937b02
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-828bc895-d3f8-43b8-b4c9-2d89f6bcce7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-a8653f71-2150-425a-ad02-f5a7de1b680a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-6568e94c-de23-4e8c-aef1-3c57af410c9d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.046873s] ... 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-95c760df-4072-448a-a461-2363b386cdcc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:20.169717+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.138262s] ... 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-9bd6265b-9936-455f-8235-83497b39d03a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2025-03-28T10:18:20.147573+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.046359s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0270f08e-a021-4b98-b176-35cfdbc9f6e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:20.216940+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.066151s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-07d413cc-db9b-42c0-9de1-af8d4d66f1e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.048004s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa93d699-d41a-4efb-b947-a8b9f84991f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:20.262941+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_empty [0.056693s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7bf63495-3723-4740-98d2-c9a5dbd36330
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"shards": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.157376s] ... 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-8170f1a8-0c1a-41ab-b9a1-ff9ee04212d2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_patch_add_name_reserved [0.107149s] ... 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-ca12586e-1c78-4ee5-acd1-307b130bf152
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-548f4e97-e354-4dd2-92f8-d7ad561fa9a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-20fd864f-5b56-43f9-82fb-655d8f7571f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-63b446bc-75c1-4177-bd28-269065e8eafe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-bdf66b73-a166-4c4e-88ed-e2eb964d9619
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-23c0e5ca-83fb-49f9-8f34-338757812eef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one [0.035765s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a4730dda-50bc-40fb-a773-eff6921f79b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.071771s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-55c8da12-710c-44ee-838c-07c8e9e4f88a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "422c2bb0-9f37-4556-a76b-976b8a051c4d", "created_at": "2025-03-28T10:18:20.309979+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/422c2bb0-9f37-4556-a76b-976b8a051c4d", "rel": "self"}, {"href": "http://localhost/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d/ports", "rel": "bookmark"}]}
GET /v1/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-33578544-4084-49f3-95e7-842c2e788026
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "422c2bb0-9f37-4556-a76b-976b8a051c4d", "created_at": "2025-03-28T10:18:20.309979+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/422c2bb0-9f37-4556-a76b-976b8a051c4d", "rel": "self"}, {"href": "http://localhost/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d/ports", "rel": "bookmark"}]}
GET /portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6df2fe18-2e63-4430-bf5a-ba6a868eefc2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "422c2bb0-9f37-4556-a76b-976b8a051c4d", "created_at": "2025-03-28T10:18:20.309979+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/422c2bb0-9f37-4556-a76b-976b8a051c4d", "rel": "self"}, {"href": "http://localhost/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/422c2bb0-9f37-4556-a76b-976b8a051c4d/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_post [0.026958s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/shards WITH {} GOT Response: 405 Method Not Allowed
Allow: GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.058777s] ... 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-d1fdf432-fb45-4a69-9134-ab2ed1455c78
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.028140s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/shards WITH {} GOT Response: 405 Method Not Allowed
Allow: GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.048692s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8f6c9e46-1faf-4fad-8156-0f392da4d405
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "1b0cbb50-3696-41f0-95ed-ddb304adf3d8", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/1b0cbb50-3696-41f0-95ed-ddb304adf3d8", "rel": "self"}, {"href": "http://localhost/portgroups/1b0cbb50-3696-41f0-95ed-ddb304adf3d8", "rel": "bookmark"}]}, {"uuid": "2d41eef4-fd2f-4938-8090-8dbb569f6202", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/2d41eef4-fd2f-4938-8090-8dbb569f6202", "rel": "self"}, {"href": "http://localhost/portgroups/2d41eef4-fd2f-4938-8090-8dbb569f6202", "rel": "bookmark"}]}, {"uuid": "ddd9fb1f-22d3-41a3-b85f-dbd6c765dbf5", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/ddd9fb1f-22d3-41a3-b85f-dbd6c765dbf5", "rel": "self"}, {"href": "http://localhost/portgroups/ddd9fb1f-22d3-41a3-b85f-dbd6c765dbf5", "rel": "bookmark"}]}, {"uuid": "8024155e-27f3-4b78-ba35-f00f6aaafe7e", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/8024155e-27f3-4b78-ba35-f00f6aaafe7e", "rel": "self"}, {"href": "http://localhost/portgroups/8024155e-27f3-4b78-ba35-f00f6aaafe7e", "rel": "bookmark"}]}, {"uuid": "2931b859-cf2a-4e47-9067-cf13f16ca135", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/2931b859-cf2a-4e47-9067-cf13f16ca135", "rel": "self"}, {"href": "http://localhost/portgroups/2931b859-cf2a-4e47-9067-cf13f16ca135", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_wrong_version [0.029908s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow shards\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.034278s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0fbd5a61-b440-4fe5-b68e-cd5c60b68940
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.057179s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/6cbbc8f4-006d-4cb3-ac86-540b8199f09d WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '49834706-d15c-43af-a403-2dfa36e89709'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-53b4295a-15eb-4e20-911c-86619c6e42cf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.143030s] ... 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-c9ee80f5-a32c-4395-94c0-4538c4cfcc07
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_portgroup_by_address [0.039516s] ... 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-380e648d-1810-438a-9062-a85ee7681723
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6f16bfe0-eadd-49e4-82dc-7cb7c6f98dde", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/6f16bfe0-eadd-49e4-82dc-7cb7c6f98dde", "rel": "self"}, {"href": "http://localhost/portgroups/6f16bfe0-eadd-49e4-82dc-7cb7c6f98dde", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_multiple_shards [0.058666s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cc4f3b49-fde7-484e-b60a-693646f46793
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.056402s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/e84b0ee2-68f4-4027-b129-5aa6e77d8240 WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '6a569c1e-9637-49c8-954b-ac1251fe776d'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-38728ca6-f986-4f1a-898b-8e5638f63289
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.039021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2de8d3bd-00e6-4656-80ab-699fcb2cb176
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.040870s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-84fec7a5-1192-4b6b-961c-80bf377626df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"shards": [{"name": "None", "count": 5}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.034363s] ... 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-898bf5c7-ea2e-4453-9704-0ea598ef1c86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.056247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/edf03107-606f-4bad-9925-82a39961a452 WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-984eb04c-dd32-4bb4-a926-2adda4e5c406
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.031296s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f83cd7ae-2509-411e-9792-2f731113e0b9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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_shard.TestListShards.test_one_shard [0.064161s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8e16a551-aed4-4aec-899f-61196b5257d2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"shards": [{"name": "shard1", "count": 1}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.056059s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/4515f8c4-a345-4ada-b9ab-98162333a5ba WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-95431244-bea3-4656-8a24-cf1c4ac81957
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.161526s] ... 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-7f5ca72f-ee5c-4847-8a15-8258a9e13914
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.045028s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.091817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/354de2fe-1f13-4df4-a0b6-12b605936791/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1e683db6-3e40-4da5-ac59-e22b7f4bce1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "14a64278-d246-4321-82cf-1a3a83b31363", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/14a64278-d246-4321-82cf-1a3a83b31363", "rel": "self"}, {"href": "http://localhost/ports/14a64278-d246-4321-82cf-1a3a83b31363", "rel": "bookmark"}]}, {"uuid": "65eafffc-8b87-434e-8447-e0fdc3334c75", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/65eafffc-8b87-434e-8447-e0fdc3334c75", "rel": "self"}, {"href": "http://localhost/ports/65eafffc-8b87-434e-8447-e0fdc3334c75", "rel": "bookmark"}]}]}
GET /v1/portgroups/354de2fe-1f13-4df4-a0b6-12b605936791/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8367d168-248d-4aee-8d36-aaf630ef8047
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "14a64278-d246-4321-82cf-1a3a83b31363", "created_at": "2025-03-28T10:18:20.615944+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, "links": [{"href": "http://localhost/v1/ports/14a64278-d246-4321-82cf-1a3a83b31363", "rel": "self"}, {"href": "http://localhost/ports/14a64278-d246-4321-82cf-1a3a83b31363", "rel": "bookmark"}], "portgroup_uuid": "354de2fe-1f13-4df4-a0b6-12b605936791"}, {"uuid": "65eafffc-8b87-434e-8447-e0fdc3334c75", "created_at": "2025-03-28T10:18:20.619371+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, "links": [{"href": "http://localhost/v1/ports/65eafffc-8b87-434e-8447-e0fdc3334c75", "rel": "self"}, {"href": "http://localhost/ports/65eafffc-8b87-434e-8447-e0fdc3334c75", "rel": "bookmark"}], "portgroup_uuid": "354de2fe-1f13-4df4-a0b6-12b605936791"}]}
GET /v1/portgroups/354de2fe-1f13-4df4-a0b6-12b605936791/ports?limit=1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ff90b9e8-eb1c-4907-b0c2-f924bff0816a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "14a64278-d246-4321-82cf-1a3a83b31363", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/14a64278-d246-4321-82cf-1a3a83b31363", "rel": "self"}, {"href": "http://localhost/ports/14a64278-d246-4321-82cf-1a3a83b31363", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=14a64278-d246-4321-82cf-1a3a83b31363"}
GET /v1/portgroups/354de2fe-1f13-4df4-a0b6-12b605936791/ports/5a736d1d-58ab-4247-994c-d5e60895cf01 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
GET /v1/portgroups/354de2fe-1f13-4df4-a0b6-12b605936791/ports/d3bea904-e65a-4caf-aba8-62a9b574704d WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b83e521e-d2dd-40e5-998e-f4d298d7f0a6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.032873s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.025987s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.027554s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.058180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/d3e9c8ba-2d21-4029-afbd-206ab7825c21/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.112745s] ... 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-db937270-07a6-44a3-9d91-46a602fe443e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_patch_duplicate_name [0.131375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/fbb920f8-a1ee-4e85-ba53-13f0f1e9f29d WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-7dcfd286-3d77-4392-8554-06a40e499f56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.020917s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.019845s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.020194s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.071944s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.070228s] ... 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-181f36a1-9c1a-4399-a327-49779ac1c1f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.024272s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.103067s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/025a62b5-a7c0-44eb-97c7-3600d657f329 WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d0d5edb3-8e12-4b50-9446-aaf512e6fd2a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.055451s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.072718s] ... 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-4a45ec42-4847-4c17-a42f-f49122e47276
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.072377s] ... 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-3f30dcca-5f53-4eb2-892d-31ae11ba92f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.067838s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.088177s] ... 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-5ca310af-3a8d-425e-8337-99f92c41a441
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:20.884420+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.087872s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c5064283-5243-4c47-b138-2668cbb27909
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "00bfa4b3-df92-480e-8b0a-3d0efa69575d", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/00bfa4b3-df92-480e-8b0a-3d0efa69575d", "rel": "self"}, {"href": "http://localhost/portgroups/00bfa4b3-df92-480e-8b0a-3d0efa69575d", "rel": "bookmark"}]}, {"uuid": "607845d1-1a95-4d6f-ac1f-cf39df54724e", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/607845d1-1a95-4d6f-ac1f-cf39df54724e", "rel": "self"}, {"href": "http://localhost/portgroups/607845d1-1a95-4d6f-ac1f-cf39df54724e", "rel": "bookmark"}]}, {"uuid": "c673d132-a58e-4f87-aa94-33b377dc3605", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/c673d132-a58e-4f87-aa94-33b377dc3605", "rel": "self"}, {"href": "http://localhost/portgroups/c673d132-a58e-4f87-aa94-33b377dc3605", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.057689s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.104234s] ... 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-88350f91-0371-44fb-8e77-4dc45d4febe9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_patch_name_replace_ok [0.090283s] ... 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-317423e3-58d2-4c3b-a3a4-b800ca7790cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:20.975338+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.053583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-470d88f5-0dd0-4673-bf2a-c908001dabf1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "690a3213-2c9d-4183-9286-f40e2fa21c22", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/690a3213-2c9d-4183-9286-f40e2fa21c22", "rel": "self"}, {"href": "http://localhost/portgroups/690a3213-2c9d-4183-9286-f40e2fa21c22", "rel": "bookmark"}]}, {"uuid": "9f132b85-1cc0-4f4f-ac47-7d94741a3c27", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/9f132b85-1cc0-4f4f-ac47-7d94741a3c27", "rel": "self"}, {"href": "http://localhost/portgroups/9f132b85-1cc0-4f4f-ac47-7d94741a3c27", "rel": "bookmark"}]}, {"uuid": "9ea95c1f-b759-4a89-964e-9c41d1fa560f", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/9ea95c1f-b759-4a89-964e-9c41d1fa560f", "rel": "self"}, {"href": "http://localhost/portgroups/9ea95c1f-b759-4a89-964e-9c41d1fa560f", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.053489s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid [0.035567s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-fe6ec008-3882-44d4-82ab-b34eae04b4c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-46cfb632-2ab3-4f7b-8eb3-88e4fae0e436
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-38caa674-d400-4421-acfb-26931598fcb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-5503d826-ed3a-4199-8d74-0135720ec508
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid [0.044126s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.028710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-8ad0cb43-d16e-4818-98ff-8894999bb093
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update [0.091531s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21 WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0d87c900-9e35-49de-812c-9037fafe627f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "00699041-8fb9-46c4-bd35-3d0cf140db21", "created_at": "2025-03-28T10:18:21.078806+00:00", "updated_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/00699041-8fb9-46c4-bd35-3d0cf140db21", "rel": "self"}, {"href": "http://localhost/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/ports", "rel": "self"}, {"href": "http://localhost/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/states", "rel": "self"}, {"href": "http://localhost/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/volume", "rel": "self"}, {"href": "http://localhost/nodes/00699041-8fb9-46c4-bd35-3d0cf140db21/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.051860s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.056200s] ... 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-e37bc4b5-17c7-46ce-a22b-ef2b4b672baa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:21.141492+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.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.168958s] ... 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-efe96a66-b659-4472-8fd0-28ec6b0533a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.048388s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.043719s] ... 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-acb1c97b-610e-42aa-8e5f-5f76cb6625b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.052727s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.049947s] ... 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-9fa41d26-8b6d-411d-979a-9a6e737e0823
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:21.236186+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.144068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-daca45b8-5de8-450b-9e64-10487c7cc391
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "60abcf5e-0651-454d-8b51-f518dcf95a8a", "created_at": "2025-03-28T10:18:21.174925+00:00", "updated_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/60abcf5e-0651-454d-8b51-f518dcf95a8a", "rel": "self"}, {"href": "http://localhost/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/ports", "rel": "self"}, {"href": "http://localhost/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/states", "rel": "self"}, {"href": "http://localhost/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/volume", "rel": "self"}, {"href": "http://localhost/nodes/60abcf5e-0651-454d-8b51-f518dcf95a8a/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.049518s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.047614s] ... 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-e3e94182-8938-499e-be86-c9703374671b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:21.286973+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_versions.TestMaxVersionString.test_max_version_not_pinned [0.046258s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.043108s] ... 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-8d9d508b-e4d7-428e-9297-cee7322e6600
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.168443s] ... 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-07487bb7-1147-4c7a-aaa1-5b68cb484245
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.032302s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.021877s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.097414s] ... 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-f281f482-40c8-4fe6-907f-8ba15ac60ae3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:21.402941+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.205167s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e 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-fd74e5fa-2c56-468f-9e94-d02929799f61
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ab17908a-ec0f-486e-8b4e-421d08c1911e", "created_at": "2025-03-28T10:18:21.363227+00:00", "updated_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/ab17908a-ec0f-486e-8b4e-421d08c1911e", "rel": "self"}, {"href": "http://localhost/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/states", "rel": "self"}, {"href": "http://localhost/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ab17908a-ec0f-486e-8b4e-421d08c1911e/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.083512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2043bf92-0413-462d-ae20-70608ecce733
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "6d5ac7c2-c94b-426e-b30e-e2a15927646f", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6d5ac7c2-c94b-426e-b30e-e2a15927646f", "rel": "self"}, {"href": "http://localhost/volume/connectors/6d5ac7c2-c94b-426e-b30e-e2a15927646f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "2ae0ca5d-7ca6-424c-9e0b-4eed85229491", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2ae0ca5d-7ca6-424c-9e0b-4eed85229491", "rel": "self"}, {"href": "http://localhost/volume/connectors/2ae0ca5d-7ca6-424c-9e0b-4eed85229491", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "db350d72-4409-453b-88ee-53067494bf21", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/db350d72-4409-453b-88ee-53067494bf21", "rel": "self"}, {"href": "http://localhost/volume/connectors/db350d72-4409-453b-88ee-53067494bf21", "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=db350d72-4409-453b-88ee-53067494bf21"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.128949s] ... 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-784ab218-cebf-4a08-9351-27c4e258e7ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestPatch.test_remove_mode_not_allowed [0.087021s] ... 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-396addcb-30d1-4e73-a96c-c7427cfe71d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.114365s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-46701e98-3c8c-4d95-9845-5c1961b03529
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "497142c2-7290-4787-bdca-25b6267250b7", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/497142c2-7290-4787-bdca-25b6267250b7", "rel": "self"}, {"href": "http://localhost/volume/connectors/497142c2-7290-4787-bdca-25b6267250b7", "rel": "bookmark"}]}, {"uuid": "09c806cf-f098-4b9b-9139-e33be4f2d6f6", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/09c806cf-f098-4b9b-9139-e33be4f2d6f6", "rel": "self"}, {"href": "http://localhost/volume/connectors/09c806cf-f098-4b9b-9139-e33be4f2d6f6", "rel": "bookmark"}]}, {"uuid": "05b6e2b7-a2d4-4c63-b35d-4e48389d3637", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/05b6e2b7-a2d4-4c63-b35d-4e48389d3637", "rel": "self"}, {"href": "http://localhost/volume/connectors/05b6e2b7-a2d4-4c63-b35d-4e48389d3637", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=05b6e2b7-a2d4-4c63-b35d-4e48389d3637"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.150652s] ... 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-a03b60ba-5ca1-401f-80bf-99f0db831a93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestPatch.test_remove_multi [0.139817s] ... 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-aa8bff61-ac33-463c-9484-6f149ce64e86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:21.594129+00:00", "updated_at": "2025-03-28T10:18:21.626575+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-1050081c-a6d9-4d60-9630-ac728b9a3f2a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:21.594129+00:00", "updated_at": "2025-03-28T10:18:21.626575+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra [0.220888s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b 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-76c512b2-9043-42a6-b56a-630878ca6d8e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9c73a06f-80ab-470b-a327-2e6001376b0b", "created_at": "2025-03-28T10:18:21.595523+00:00", "updated_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/9c73a06f-80ab-470b-a327-2e6001376b0b", "rel": "self"}, {"href": "http://localhost/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/ports", "rel": "self"}, {"href": "http://localhost/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/states", "rel": "self"}, {"href": "http://localhost/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/volume", "rel": "self"}, {"href": "http://localhost/nodes/9c73a06f-80ab-470b-a327-2e6001376b0b/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.111693s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-17228a0d-5e4b-43d7-a754-a39934e0c221
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "bd8fd478-3e0c-4959-ae0b-5522dd42d6df", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/bd8fd478-3e0c-4959-ae0b-5522dd42d6df", "rel": "self"}, {"href": "http://localhost/volume/connectors/bd8fd478-3e0c-4959-ae0b-5522dd42d6df", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "cd656cce-814f-4104-930d-119c12cb4d15", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cd656cce-814f-4104-930d-119c12cb4d15", "rel": "self"}, {"href": "http://localhost/volume/connectors/cd656cce-814f-4104-930d-119c12cb4d15", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "2d8a2edf-07cd-4cf7-a03e-ce295d2ec812", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2d8a2edf-07cd-4cf7-a03e-ce295d2ec812", "rel": "self"}, {"href": "http://localhost/volume/connectors/2d8a2edf-07cd-4cf7-a03e-ce295d2ec812", "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=2d8a2edf-07cd-4cf7-a03e-ce295d2ec812"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.047183s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dc835d6f-375f-4e21-8837-2ebcd0c0a33d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "226173f8-b979-40c3-b3d8-6320c46dabb9", "created_at": "2025-03-28T10:18:21.752567+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/226173f8-b979-40c3-b3d8-6320c46dabb9", "rel": "self"}, {"href": "http://localhost/volume/connectors/226173f8-b979-40c3-b3d8-6320c46dabb9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "54239600-8e9c-4e87-a9d0-d439305a3204", "created_at": "2025-03-28T10:18:21.753455+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/54239600-8e9c-4e87-a9d0-d439305a3204", "rel": "self"}, {"href": "http://localhost/volume/connectors/54239600-8e9c-4e87-a9d0-d439305a3204", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "2cc55209-3a87-4bbc-ae40-323ce86811d0", "created_at": "2025-03-28T10:18:21.754311+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2cc55209-3a87-4bbc-ae40-323ce86811d0", "rel": "self"}, {"href": "http://localhost/volume/connectors/2cc55209-3a87-4bbc-ae40-323ce86811d0", "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=2cc55209-3a87-4bbc-ae40-323ce86811d0"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.039864s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e99ceb08-c469-4923-992b-e10213254f8b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:21.801657+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.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.171733s] ... 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-c21033e4-f4f3-4d90-9041-fea6c7db4e7b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.034997s] ... 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-39f47419-9d73-47bc-b8b5-f3c5c26d4d06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.033459s] ... 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-afc099b3-ad18-4762-9b25-e2b2c0cecdb1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.038007s] ... 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-82108427-491f-4a44-bb00-f4441c991d8b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:21.910620+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.TestPatch.test_remove_node_id [0.230521s] ... 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-b5143e86-7054-46ba-8968-b9f314d46ffc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_volume_connector.TestListVolumeConnectors.test_detail_false [0.037383s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4ed5da7b-0d68-414b-88fe-82ca56bcd3bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.158336s] ... 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-6e2a88b4-0d8e-422a-b629-c8dbb63645fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.033612s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.307036s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d 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-1d957509-8776-4b3c-84b7-e07f0232606f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d", "created_at": "2025-03-28T10:18:21.965496+00:00", "updated_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/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d", "rel": "self"}, {"href": "http://localhost/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/states", "rel": "self"}, {"href": "http://localhost/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca5beb19-21b4-4fe0-9b27-2c0c9a25b50d/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.108747s] ... 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-4d56e0a5-e852-4904-a6f1-dad2a66d63f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_put_admin [0.064775s] ... 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-60ac8fe3-6077-4539-b555-7d3b4fd80fda
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.075896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-596191ed-93cb-48a0-8909-3406e40ef49c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.047613s] ... 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-3238ea24-22c7-46cf-b82f-2a2afa73e066
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_member [0.066143s] ... 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-e491011b-a85a-4dd7-be09-5832ae92f027
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.058688s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c3d9c76-3d15-4509-a5bb-a65097ef2cd5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": []}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.054324s] ... 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-6d2897e4-d19d-4c6e-adce-341e58956e0d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.159015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930 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-e4c5e45b-7f49-4914-8a67-21513447b085
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e92ad479-f203-4c96-a6c4-aabebe66e930", "created_at": "2025-03-28T10:18:22.088638+00:00", "updated_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/e92ad479-f203-4c96-a6c4-aabebe66e930", "rel": "self"}, {"href": "http://localhost/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/ports", "rel": "self"}, {"href": "http://localhost/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/states", "rel": "self"}, {"href": "http://localhost/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/volume", "rel": "self"}, {"href": "http://localhost/nodes/e92ad479-f203-4c96-a6c4-aabebe66e930/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.056352s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f6d164e-ea5a-47ed-ad06-4f7b10e9f3ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "64ac1e58-bb9e-47ee-a173-9485447e3f93", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/64ac1e58-bb9e-47ee-a173-9485447e3f93", "rel": "self"}, {"href": "http://localhost/volume/connectors/64ac1e58-bb9e-47ee-a173-9485447e3f93", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3a990833-d1d3-4af9-bfac-8fb718254159", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3a990833-d1d3-4af9-bfac-8fb718254159", "rel": "self"}, {"href": "http://localhost/volume/connectors/3a990833-d1d3-4af9-bfac-8fb718254159", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d3b0a997-e25c-48d5-bb95-7413f8240c52", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d3b0a997-e25c-48d5-bb95-7413f8240c52", "rel": "self"}, {"href": "http://localhost/volume/connectors/d3b0a997-e25c-48d5-bb95-7413f8240c52", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer [0.073491s] ... 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-17fa0a55-42a8-4401-8686-8b8ce84e5dd6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestPatch.test_replace_multi [0.066997s] ... 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-6ceee377-99f2-4917-af62-ca94c6d7380f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:22.169198+00:00", "updated_at": "2025-03-28T10:18:22.182131+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.047916s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb0b1353-fbfc-4de6-8ac9-1f891132cd80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "3d32c350-5822-4778-aa81-17ba02932498", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/3d32c350-5822-4778-aa81-17ba02932498", "rel": "self"}, {"href": "http://localhost/volume/connectors/3d32c350-5822-4778-aa81-17ba02932498", "rel": "bookmark"}]}, {"uuid": "c6c7fdce-b473-419c-9561-6249cc3b70c7", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/c6c7fdce-b473-419c-9561-6249cc3b70c7", "rel": "self"}, {"href": "http://localhost/volume/connectors/c6c7fdce-b473-419c-9561-6249cc3b70c7", "rel": "bookmark"}]}, {"uuid": "72e07d2b-3fbb-4bce-adad-70b52642a509", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/72e07d2b-3fbb-4bce-adad-70b52642a509", "rel": "self"}, {"href": "http://localhost/volume/connectors/72e07d2b-3fbb-4bce-adad-70b52642a509", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.049642s] ... 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-d0820a7f-abd7-4646-a72d-71d3e9ff2069
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin [0.079518s] ... 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-5d0fb1f1-916a-44a9-9ea8-49683e4b0421
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.045816s] ... 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-63d088b5-477f-42b0-85b5-088cfa0dfbe2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"connector_id": "test-connector_id-0", "links": [{"href": "http://localhost/v1/volume/connectors/cfce40b5-da9e-4b36-919c-4a3fd2be1071", "rel": "self"}, {"href": "http://localhost/volume/connectors/cfce40b5-da9e-4b36-919c-4a3fd2be1071", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/97329e9e-8cda-4451-9ec0-44b98bd6895d", "rel": "self"}, {"href": "http://localhost/volume/connectors/97329e9e-8cda-4451-9ec0-44b98bd6895d", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=97329e9e-8cda-4451-9ec0-44b98bd6895d"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.055082s] ... 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-b5f9d625-cbd6-4e13-beea-b3ef7db322a1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:22.290604+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.031387s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info [0.172338s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0 WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8b89a3ef-bb3a-4565-9997-7b4adbab8b94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "104df9ca-4097-4edb-ae34-019bb619d9c0", "created_at": "2025-03-28T10:18:22.260208+00:00", "updated_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/104df9ca-4097-4edb-ae34-019bb619d9c0", "rel": "self"}, {"href": "http://localhost/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/ports", "rel": "self"}, {"href": "http://localhost/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/states", "rel": "self"}, {"href": "http://localhost/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/volume", "rel": "self"}, {"href": "http://localhost/nodes/104df9ca-4097-4edb-ae34-019bb619d9c0/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.040736s] ... 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-c3cd873b-d207-45a2-8d2d-e2310e5ad1ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.051792s] ... 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-98d9b54c-138e-479c-9482-6cd23e4e9ab4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member [0.107404s] ... 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-366a58d9-0d60-4d4a-813e-4d17a774ff22
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.041911s] ... 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-67bddd99-4c86-4597-9858-f3cbacf65d2d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:22.384354+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.TestPatch.test_replace_singular [0.057691s] ... 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-80ccb6b3-2753-4c68-b6e6-d25b52021c0d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:22.397425+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer [0.061736s] ... 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-967bf4ff-1d55-4213-a982-420df3f7117a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.052692s] ... 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-a69d88cf-d355-4ace-a946-92edfd7a94f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestPatch.test_update_address_invalid_format [0.055364s] ... 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-a949cbe4-4e04-40c1-ae0c-571912f9db90
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none [0.154265s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c WITH [] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5af0e796-2243-486f-bcf6-afc9b23284b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "64b6474b-a5df-457d-9f0a-524d1d4dbf7c", "created_at": "2025-03-28T10:18:22.444905+00:00", "updated_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/64b6474b-a5df-457d-9f0a-524d1d4dbf7c", "rel": "self"}, {"href": "http://localhost/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/ports", "rel": "self"}, {"href": "http://localhost/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/states", "rel": "self"}, {"href": "http://localhost/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/volume", "rel": "self"}, {"href": "http://localhost/nodes/64b6474b-a5df-457d-9f0a-524d1d4dbf7c/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_get_admin [0.062242s] ... 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-5359b580-8c9b-4d90-a72a-da64ec06fb3a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestPatch.test_update_byaddress_not_allowed [0.034653s] ... 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_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.056009s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.059029s] ... 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-a3328a3b-9dd5-48aa-b4f8-d930e8d2ade0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.052050s] ... 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-60e5b0cc-361f-4a87-997e-c99646439211
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:22.545654+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.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_member [0.074933s] ... 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-2ace4c42-74e6-49fe-92a7-4077b9bc6900
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestPatch.test_update_byid_invalid_api_version [0.036287s] ... 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_volume_connector.TestListVolumeConnectors.test_links [0.090502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2c339ee-0ba1-4d99-88e2-76e2121f3442
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "14750d9f-7ada-4d8c-8b48-34cd72d4d621", "created_at": "2025-03-28T10:18:22.575815+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621", "rel": "self"}, {"href": "http://localhost/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ef2a973e-4624-4e04-9629-dcbbb7bffddb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "14750d9f-7ada-4d8c-8b48-34cd72d4d621", "created_at": "2025-03-28T10:18:22.575815+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621", "rel": "self"}, {"href": "http://localhost/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-153ac4a4-52ca-4db1-8b9d-5b11b775b27d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "14750d9f-7ada-4d8c-8b48-34cd72d4d621", "created_at": "2025-03-28T10:18:22.575815+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621", "rel": "self"}, {"href": "http://localhost/volume/connectors/14750d9f-7ada-4d8c-8b48-34cd72d4d621", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.047581s] ... 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-2824b475-2ee9-4ba0-ba87-15bfecf6549a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.047404s] ... 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-f3ddd0a1-ad24-452f-afe9-8e380fe3ce4d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:22.631040+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.042144s] ... 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-8c8a41d7-caeb-4d92-8af3-3d3ece834a95
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_ident\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.059209s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3e4cfb4a-d8cc-480d-a691-1dc4cf9dba68
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "cc5e134a-f929-47db-808a-72aea048591c", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cc5e134a-f929-47db-808a-72aea048591c", "rel": "self"}, {"href": "http://localhost/volume/connectors/cc5e134a-f929-47db-808a-72aea048591c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0d637d26-15a5-4fe2-a142-f5441642ada3", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0d637d26-15a5-4fe2-a142-f5441642ada3", "rel": "self"}, {"href": "http://localhost/volume/connectors/0d637d26-15a5-4fe2-a142-f5441642ada3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f3991f17-236d-4dac-903d-3aef47aaa8c1", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f3991f17-236d-4dac-903d-3aef47aaa8c1", "rel": "self"}, {"href": "http://localhost/volume/connectors/f3991f17-236d-4dac-903d-3aef47aaa8c1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "eb356d47-7c84-48df-9a61-bcafbf4a71d3", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/eb356d47-7c84-48df-9a61-bcafbf4a71d3", "rel": "self"}, {"href": "http://localhost/volume/connectors/eb356d47-7c84-48df-9a61-bcafbf4a71d3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "fc942e62-20bb-45bd-82de-2a633ae9142c", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/fc942e62-20bb-45bd-82de-2a633ae9142c", "rel": "self"}, {"href": "http://localhost/volume/connectors/fc942e62-20bb-45bd-82de-2a633ae9142c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.053293s] ... 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-2367e0d5-6d1e-4282-a316-c2c5f5c783ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:22.679899+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_volume_connector.TestListVolumeConnectors.test_one [0.050225s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9647bc41-8d4d-4981-8984-cb524f9c4b9e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer [0.139392s] ... 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-a5992879-3b45-49fb-9cb7-54a7117db222
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.030959s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.052285s] ... 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-c3ecd84f-d058-4d30-a2f7-209b228f9188
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:22.731504+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.121811s] ... 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-4a430a7d-0e60-4b95-b4e1-4d3bb5ec05be
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.046508s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae970357-1dff-4088-b554-36b9e592da77
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "35ff453f-e466-4bec-911e-dd7099e6be2a", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/35ff453f-e466-4bec-911e-dd7099e6be2a", "rel": "self"}, {"href": "http://localhost/volume/connectors/35ff453f-e466-4bec-911e-dd7099e6be2a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "4c83c546-a4db-425d-87a8-03e5d819cf0f", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/4c83c546-a4db-425d-87a8-03e5d819cf0f", "rel": "self"}, {"href": "http://localhost/volume/connectors/4c83c546-a4db-425d-87a8-03e5d819cf0f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "eadf3a5e-8873-4140-96fa-24f5048d8e3b", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/eadf3a5e-8873-4140-96fa-24f5048d8e3b", "rel": "self"}, {"href": "http://localhost/volume/connectors/eadf3a5e-8873-4140-96fa-24f5048d8e3b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.046031s] ... 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-0e3c1fd0-8cbe-4984-8718-692773b30845
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.036249s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8d5ae229-d2f6-4db8-ab37-7fdf50f529c0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-c8276bfe-d883-4359-b527-4f4f719eee34
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin [0.129479s] ... 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-e2037c41-c535-4586-9254-f59932925ebe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_patch_update_name_twice_second_invalid [0.045703s] ... 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-a58c9108-659d-4c01-bf57-c4292d8fcdc6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.117190s] ... 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-dc1f792d-5c08-4681-b62f-552334078260
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.050679s] ... 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-fbfd406a-3db5-4d79-b32d-a9efb5bf5340
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member [0.064250s] ... 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-6722d907-8f9b-4b1f-9ebd-11a7bfacf58e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.039270s] ... 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-a381eace-0813-4ff2-8bf3-feaf5903bad5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.094009s] ... 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-b0a6e4da-8b99-4600-b8c0-5ba6dbfb7a4a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer [0.066321s] ... 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-379af21d-9f38-4ca5-b9e0-7a0ed61a9ed4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_patch_volume_targets_subresource [0.072356s] ... 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-4b566b58-d749-4306-8e89-71d12f275d04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.061969s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/a9331d0c-6d67-4572-8cf2-566e703f87f4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-140267d5-9c90-4f74-9de0-df2e3ed40dc8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup a9331d0c-6d67-4572-8cf2-566e703f87f4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.046672s] ... 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-3c6f5a3b-865c-4329-a6da-fe54fe3ae07b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:23.073214+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.066167s] ... 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-d0394e00-4226-4227-8d9b-21257ca780ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.047253s] ... 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-e8b7413c-cd35-4d1d-a44f-32d723fe6765
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /internal_info. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.081212s] ... 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-f7e7f30a-7bc3-428a-b4c0-f05dbb6fe626
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:23.125973+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.048522s] ... 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-9ab05f7a-9610-4d0f-9a24-43ddc309f70f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:23.168365+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.052505s] ... 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-3b4cf9b7-42b7-48e8-ba11-486db18a799e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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-6cd4a45a-e31f-43e8-ad30-a8d72521226e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.077961s] ... 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-b0807a5f-17fe-4636-9c19-a66fc1db9186
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.049359s] ... 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-bfdabea4-fc48-48d2-86d7-4a5aaadab8fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:23.273967+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.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.042785s] ... 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-d557e629-b8b5-4c3b-976e-6c28dda2a40a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.043129s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.087255s] ... 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-930c2ea1-90c1-4492-b642-fadfe53436c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_remove_mandatory_field [0.078669s] ... 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-18171a97-66a1-4b9b-8f7f-d30d3091d380
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_bmc_address_as_none [0.041118s] ... 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-72b9f2bd-f94e-4e57-8546-65221ac92540
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "23fe29ed-b085-4927-9bdc-412a20fc22a1"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_put_admin [0.408991s] ... 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-5ef4ff82-6217-4fcb-b9f9-f4354ae1b680
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_remove_non_existent_property_fail [0.049641s] ... 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-c6c49d04-c1fb-4f46-b751-5b48e304b178
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.096744s] ... 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-209d91c3-0226-4bda-b01d-821c22ffa914
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestContinueInspection.test_inspector_compatibility [0.069728s] ... 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-1a84c333-f926-4400-92aa-7b59348e59a4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "9693fd9a-83b0-48c4-9673-e6409d1acfc1"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_member [0.064429s] ... 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-fb244dfb-cda5-4d1d-8b12-f39695becde3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.065832s] ... 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-1f651398-9c25-4a99-873f-e360f7618ca0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestContinueInspection.test_invalid_schema [0.039351s] ... 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-d0852fe6-611e-42a5-b1e6-99b32a3e60b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api [0.037485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ac59acc-665a-4663-9e9b-68e3968ff60b
{"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.90"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.90"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_new_api [0.037503s] ... 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-4606d6c4-afab-47d9-a031-25184d9b662f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "9defd67c-d1f8-4b10-a38a-825edb746645", "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/9defd67c-d1f8-4b10-a38a-825edb746645", "rel": "self"}, {"href": "http://localhost/nodes/9defd67c-d1f8-4b10-a38a-825edb746645", "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_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.120058s] ... 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-c19d6bc9-f2a9-433e-b780-826ea125456e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:23.459600+00:00", "updated_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.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer [0.085018s] ... 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-b7add882-7dd7-427a-8380-ac43c16efadf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.033655s] ... 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-73914f81-e0e0-4604-a34b-5f2501d7587f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.043480s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f8ff95c1-d96f-4f4f-ac9a-3ac6e546a16f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.90"}, "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"}], "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_ramdisk.TestContinueInspection.test_old_api_version [0.033215s] ... 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-126f787a-c132-4d80-9ffd-1df1c7b8bf9f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.038867s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9a5bac3c-214b-4a69-a55f-4aa4c816b60f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.90"}, "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"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin [0.077793s] ... 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-c67bc208-083e-4364-ac80-fbeceead51ba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_remove_uuid [0.090284s] ... 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-a0c57461-0e50-4c58-bee5-9c5902f004b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.033629s] ... 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-bef57806-2a99-4eb4-a367-af258f4e4017
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "08e09cb0-bf87-44d2-8672-57de37229db4"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.039877s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bd765ad3-67c6-42d2-a8de-af2a3e59ff92
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.90"}, "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"}], "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_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.049139s] ... 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-99b4c6c1-3c41-4a43-9b32-497cccc0c0bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "3134da0f-375c-402c-a829-713a67a51f0b"}
{2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml [0.033101s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1.xml WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.057168s] ... 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-9078613a-55fa-4075-b48f-2be1fa69bf6c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_member [0.065779s] ... 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-2737adc6-1cc1-432c-a6b1-41d1888b35fc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.028230s] ... ok
{2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.026779s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer [0.061912s] ... 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-c7b88b42-78c5-4da1-ac6d-f2653d7ae134
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.083385s] ... 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-f2d9efe5-5257-4369-8f37-8468efa920ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"An unknown exception occurred.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.030111s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.086829s] ... 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-e338ea82-5ea1-455f-8369-f91d466da5e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:23.732170+00:00", "updated_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.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.033327s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin [0.064272s] ... 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-8f817634-ce66-4fe6-9f0c-a9b0a28a39b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_replace_consoled_enabled [0.044902s] ... 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-7436171e-4673-4341-acb2-6983006d99f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.036198s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_bmc_address_as_none [0.089094s] ... 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-2e8f49ba-4791-40fa-9042-e25963da251d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "04f35f44-1ed0-414a-998f-e348f30e1077"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.046665s] ... 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-423c318a-7e6f-4c93-9fed-b4d68aadb5d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.028412s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_member [0.066697s] ... 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-91b9488e-c8d3-4ca4-8c1d-f18fdda74d4d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.027404s] ... ok
{2} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.027910s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-571965b5-7020-49f5-b1e1-f59a7ec368ef
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.083584s] ... 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-196478b3-3e59-43b2-8953-845c62d50536
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "200fabac-7846-4a6a-93f8-b4806f82a120"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_observer [0.063311s] ... 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-d6365cdc-ca03-4d36-b8d0-ed5094ab345b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_replace_maintenance [0.090112s] ... 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-84e29b97-6d91-4571-9b33-f45a46424a73
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:23.913828+00:00", "updated_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.test_method.TestExpose.test_expose [0.039269s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-430dfab0-0d58-48f2-a87e-cc67632083c1
{"foo": true}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_invalid_schema [0.051131s] ... 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-b8c6ae3b-fe78-483d-8489-8fdc49983e83
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_method.TestExpose.test_expose_validation [0.039682s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b6cc8abf-d4d8-4737-a9bb-3c717368dc94
{"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}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin [0.070729s] ... 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-ff9c560f-003a-4f3d-8e64-5aacfc754ab3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestContinueInspectionScopedRBAC.test_new_api [0.037164s] ... 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-040c4524-b903-4800-aff8-9ff01fa524c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "c83a2eae-0efe-4ac7-9c83-38e20bf5dc60", "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/c83a2eae-0efe-4ac7-9c83-38e20bf5dc60", "rel": "self"}, {"href": "http://localhost/nodes/c83a2eae-0efe-4ac7-9c83-38e20bf5dc60", "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_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.088783s] ... 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-9805eb81-f790-47d9-91ca-be8243de24d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:24.004806+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_method.TestExpose.test_post_body [0.038905s] ... 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-ec2b4af0-0b13-44d6-ae50-800b2a8e6ee2
{"three": "three", "four": "four", "five": "five"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.046709s] ... 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-85ba864d-ce1e-44cb-9d59-3ef99d0b910f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation [0.030787s] ... 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-594301bb-49a9-45c3-9410-58a5c8aa1832
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_member [0.074580s] ... 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-33658a14-fc58-4afd-8ced-a3e6af1d88fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.033054s] ... 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-f095f4f0-b66f-4b18-9c76-3e0fb8ebba85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_method.TestExpose.test_response_204 [0.028547s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/no_content WITH {} GOT Response: 204 No Content
Openstack-Request-Id: req-916e17b3-d04a-4231-b05c-06c96db3ae9e
{2} ironic.tests.unit.api.test_method.TestExpose.test_response_content [0.024763s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/response_content WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bd0b7497-05e2-4677-96ee-2b87a8d4fa33
"nothing"
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.049643s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=508c75ff-097b-4668-b433-1b28be88138a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e07e1965-ba8d-4db5-8fa7-68067b221084
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "508c75ff-097b-4668-b433-1b28be88138a", "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/508c75ff-097b-4668-b433-1b28be88138a", "rel": "self"}, {"href": "http://localhost/nodes/508c75ff-097b-4668-b433-1b28be88138a", "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_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=508c75ff-097b-4668-b433-1b28be88138a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-37b56f2b-bc84-45c0-8949-46be1cd6e945
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "508c75ff-097b-4668-b433-1b28be88138a", "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/508c75ff-097b-4668-b433-1b28be88138a", "rel": "self"}, {"href": "http://localhost/nodes/508c75ff-097b-4668-b433-1b28be88138a", "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_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=508c75ff-097b-4668-b433-1b28be88138a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-44d84cbc-3f10-411d-b389-e6b901fee43c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "508c75ff-097b-4668-b433-1b28be88138a", "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/508c75ff-097b-4668-b433-1b28be88138a", "rel": "self"}, {"href": "http://localhost/nodes/508c75ff-097b-4668-b433-1b28be88138a", "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_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.114770s] ... 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-b1ecb87c-ffe7-4e11-ae24-8f94c30610a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_method.TestExpose.test_response_custom_status [0.033124s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted
Content-Type: application/json
Openstack-Request-Id: req-5ae47adc-a602-4f9d-a419-e648d3359729
"accepted"
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_observer [0.091845s] ... 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-424cc080-30d5-463b-9bf8-acbb5ac4fb6e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.041810s] ... 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-9fa7cfc2-a982-49c8-aa12-f30b251f042a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "6d2dea3f-fd47-4633-ae2c-82bcf0183873", "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/6d2dea3f-fd47-4633-ae2c-82bcf0183873", "rel": "self"}, {"href": "http://localhost/nodes/6d2dea3f-fd47-4633-ae2c-82bcf0183873", "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_token": "some-value", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.029913s] ... ok
{2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.024818s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.040795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=40d1cc9b-8e5e-448a-9280-f31199713446 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-394b35d3-1361-49cc-83a3-bb70bdd38efd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "40d1cc9b-8e5e-448a-9280-f31199713446", "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/40d1cc9b-8e5e-448a-9280-f31199713446", "rel": "self"}, {"href": "http://localhost/nodes/40d1cc9b-8e5e-448a-9280-f31199713446", "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_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.084874s] ... 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-e9a62666-c367-44de-a4aa-dbc4aa4b333e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_delete_admin [0.070127s] ... 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-ddbee682-682b-4c0d-9c28-a65460ce443c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.040940s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.035763s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=a1443e64-6b74-4da6-be12-36ab13c5c97b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9e77f743-e269-4d27-b980-d7a28a129fb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "a1443e64-6b74-4da6-be12-36ab13c5c97b", "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/a1443e64-6b74-4da6-be12-36ab13c5c97b", "rel": "self"}, {"href": "http://localhost/nodes/a1443e64-6b74-4da6-be12-36ab13c5c97b", "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_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.024733s] ... ok
{2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.023923s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-38dc30ee-2ba6-4a49-81c4-00192791a3df
{"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.90"}, "versions": [{"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.90"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.041541s] ... 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-2bf64b9e-3094-4c7a-83f1-429b95d235db
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "5f7d67ad-c2d4-415e-82b2-dd2cca04b8f2", "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/5f7d67ad-c2d4-415e-82b2-dd2cca04b8f2", "rel": "self"}, {"href": "http://localhost/nodes/5f7d67ad-c2d4-415e-82b2-dd2cca04b8f2", "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_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.026622s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dab0995d-edc5-44aa-874e-03ebe99c544f
{"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.90"}, "versions": [{"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.90"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member [0.076844s] ... 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-6fe41af4-4311-4644-bce9-e0d379ba040e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.036923s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=7295508e-0468-4724-ad0e-5acee50550df WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bdf1554d-e5ad-442f-a6e9-976c7d7b289b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "7295508e-0468-4724-ad0e-5acee50550df", "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/7295508e-0468-4724-ad0e-5acee50550df", "rel": "self"}, {"href": "http://localhost/nodes/7295508e-0468-4724-ad0e-5acee50550df", "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_token": "234567890", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.027121s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2af21d4b-34c5-4910-915f-0768964afaff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.90"}, "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found [0.033154s] ... 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-28481eb1-1680-46b9-af6b-855ede3ca252
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.025535s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-760d1c3a-4895-4428-adb5-dc53432dd19f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.90"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.034833s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-03b11a1d-1d33-4c0d-8047-dc5533fd6948
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_observer [0.081530s] ... 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-642ac692-2a6f-4183-a586-4286de66ebf1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.033859s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-74f5c662-ac4e-4a82-9410-93f92504f1af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.90"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.033518s] ... 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-b78be755-0482-438a-a729-4c63b1dc9c21
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.045971s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cc7248b5-dfc7-4173-8362-ab580c53b601
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.90"}}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup [0.035311s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=c8c45d34-414d-448b-b4e7-298815167b6d WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e2e0241c-87e2-4e42-8c48-4dcd4b50c020
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.017366s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_trait_put_admin [0.085144s] ... 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-e1ffc432-9b68-43da-bb09-c4f524755acf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum [0.033357s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.016903s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.017080s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_glance [0.028297s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_http_url [0.017599s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_https_url [0.017571s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_member [0.081948s] ... 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-450a957f-2b48-4536-802d-19fca2a25509
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_not_allowed [0.019272s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha256 [0.017055s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha512 [0.018122s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_no_checksum_file_url [0.020668s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_observer [0.083570s] ... 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-b75e1ee8-c33f-4158-a892-c012ab0bbd8f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url [0.020749s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_file [0.019286s] ... ok
{2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_string [0.018423s] ... ok
{2} ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session [0.019269s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_delete_admin [0.073477s] ... 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-2ebbfa2f-9640-4bcd-84cc-6d33024ed763
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_root.TestCheckVersions.test_check_version_too_low [0.210429s] ... ok
{2} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.028132s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version [0.025367s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8c952d68-cec2-4b40-a810-7d6a9bb4e814
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.90"}, "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"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.030822s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version [0.029619s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf171796-7a50-4bd1-bdfd-34a004f36bfe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.90"}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.575506s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb7f1818-b5c1-4820-a3d7-eb72e80fa688
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9bd9dedb-5153-46f2-a641-2abfc66759eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b483b31e-ca0a-41ee-83c9-3c3fb30a4a81
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "alloca
    tion_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c64d80ea-2c82-4277-af57-5f8d4368b703
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/management_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: 
    req-621fa84c-791c-4d8c-a7f6-047f7c49be01
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8249f319-002a-4109-af5f-98292b63546b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-729e8389-75f4-41db-9bc8-068b3aa9d27c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b
    8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31 WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-78068941-71d5-46ef-82e0-251e4eb4ac15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2b8fadbd-f502-4a41-94ea-449a077daa31", "created_at": "2025-03-28T10:18:24.365611+00:00", "updated_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/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b8fadbd-f502-4a41-94ea-449a077daa31/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.030217s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f6be3801-c0ea-4b6d-b0cd-7456d57254a8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.90"}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_member [0.094820s] ... 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-34a613d8-1ceb-429c-93ce-6dba458f6e65
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.048539s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.022386s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.049063s] ... 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-c366b5fc-3274-46c9-b410-e10867ab7cdb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.020468s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.018362s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.045327s] ... 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-c9c650cf-b555-4cfc-b128-53091c12e049
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.051712s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.020328s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.017920s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.018258s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.039165s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.017849s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ [0.025309s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_observer [0.143887s] ... 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-9287077f-d98e-45a8-876e-b6b734ab9946
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.018716s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.033644s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.016295s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.108222s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335 WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-755db418-32e7-45c2-9192-b5200b636eb4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5a4308b0-db3e-419a-8b95-2a391bb67335", "created_at": "2025-03-28T10:18:24.994311+00:00", "updated_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/5a4308b0-db3e-419a-8b95-2a391bb67335", "rel": "self"}, {"href": "http://localhost/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/ports", "rel": "self"}, {"href": "http://localhost/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/states", "rel": "self"}, {"href": "http://localhost/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/volume", "rel": "self"}, {"href": "http://localhost/nodes/5a4308b0-db3e-419a-8b95-2a391bb67335/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.018603s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.042885s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.018190s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_vifs_get_admin [0.079057s] ... 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-4a8433bc-04a5-441c-b621-196bd752483e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.019227s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.016930s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.042549s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.089961s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9 WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a17c5588-ddc2-4365-a35d-12ed265d7ece
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "0c019be9-1a78-419d-87d4-7fdb6df5d3b9", "created_at": "2025-03-28T10:18:25.092186+00:00", "updated_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/0c019be9-1a78-419d-87d4-7fdb6df5d3b9", "rel": "self"}, {"href": "http://localhost/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/ports", "rel": "self"}, {"href": "http://localhost/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/states", "rel": "self"}, {"href": "http://localhost/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/volume", "rel": "self"}, {"href": "http://localhost/nodes/0c019be9-1a78-419d-87d4-7fdb6df5d3b9/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.035213s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.053326s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.026626s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_member [0.096477s] ... 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-5b2110e7-050b-4505-b85e-837162b35f8a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.018666s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.019734s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.018229s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.083961s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_observer [0.067609s] ... 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-f4852dd6-b785-4a14-843c-6e09eca47178
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.021765s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.140917s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f2e5a6a1-31cc-484f-834a-4a7705eff128 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dc8948ec-ab49-47c0-adbd-5357f7b15598
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f2e5a6a1-31cc-484f-834a-4a7705eff128", "created_at": "2025-03-28T10:18:25.182448+00:00", "updated_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/f2e5a6a1-31cc-484f-834a-4a7705eff128", "rel": "self"}, {"href": "http://localhost/nodes/f2e5a6a1-31cc-484f-834a-4a7705eff128", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f2e5a6a1-31cc-484f-834a-4a7705eff128/ports", "rel": "self"}, {"href": "http://localhost/nodes/f2e5a6a1-31cc-484f-834a-4a7705eff128/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.035051s] ... ok
{2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorsTargeted.test_vhd_table_over_limit [0.017501s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.044352s] ... ok
{2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorsTargeted.test_vhd_table_under_limit [0.016859s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_post_admin [0.067095s] ... 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-a89681ed-fe89-4b5b-bcde-1a19ca70d5e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.016585s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.018613s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.049528s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.017278s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.101375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d9b7ea6d-99f0-4165-b434-8af917bd6c32 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f334dae0-55bb-44f4-bbfe-efeec2e26ac6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "d9b7ea6d-99f0-4165-b434-8af917bd6c32", "created_at": "2025-03-28T10:18:25.344262+00:00", "updated_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/d9b7ea6d-99f0-4165-b434-8af917bd6c32", "rel": "self"}, {"href": "http://localhost/nodes/d9b7ea6d-99f0-4165-b434-8af917bd6c32", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d9b7ea6d-99f0-4165-b434-8af917bd6c32/ports", "rel": "self"}, {"href": "http://localhost/nodes/d9b7ea6d-99f0-4165-b434-8af917bd6c32/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.016674s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_member [0.069244s] ... 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-6a3f0d26-9e15-477c-b163-7ca385637435
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.016027s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.044043s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.016714s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.017200s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.017432s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_observer [0.065168s] ... 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-64baba51-b178-44cd-94dc-d879ec855a43
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.059842s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.018785s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.018714s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.033615s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.128263s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9420d07e-bf12-48bb-b19d-67753d94f7ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "81dc9562-90bf-4846-a129-ed5d66bbe4cc", "created_at": "2025-03-28T10:18:25.443593+00:00", "updated_at": null, "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/81dc9562-90bf-4846-a129-ed5d66bbe4cc", "rel": "self"}, {"href": "http://localhost/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/states", "rel": "self"}, {"href": "http://localhost/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/81dc9562-90bf-4846-a129-ed5d66bbe4cc/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.029784s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin [0.065936s] ... 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-867b2ebe-ce5e-40a4-bd14-490c11e6a5c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.039520s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.049989s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/be6323d1-d56e-4a61-9ebd-a97d921d1bfb WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f5f4a0e5-f776-49a8-9d1e-33b22c232519
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.057299s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.043818s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member [0.068793s] ... 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-f8b58680-56bb-459d-9cb4-c7f6b859003f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_automated_clean_with_false [0.056918s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/445e7318-5fb8-4501-ba6f-ac3e07c91f2c WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f5673a25-b10d-46de-a5e3-8eb5e4ff2bbc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.045950s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.065609s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.055294s] ... 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-c7f13d30-10ec-453c-86f6-2e56bfdc7bca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.024694s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer [0.075117s] ... 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-93677e6b-e57c-4dd4-9c23-7c661d4d9760
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.057284s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.024934s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.024603s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.037988s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.024266s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.086788s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/67951c73-8b93-4b98-9908-0bd16043e298 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d7a92064-9b82-49c7-b9b5-834f134ba8e4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "67951c73-8b93-4b98-9908-0bd16043e298", "created_at": "2025-03-28T10:18:25.728128+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/67951c73-8b93-4b98-9908-0bd16043e298", "rel": "self"}, {"href": "http://localhost/nodes/67951c73-8b93-4b98-9908-0bd16043e298", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/67951c73-8b93-4b98-9908-0bd16043e298/ports", "rel": "self"}, {"href": "http://localhost/nodes/67951c73-8b93-4b98-9908-0bd16043e298/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67951c73-8b93-4b98-9908-0bd16043e298/states", "rel": "self"}, {"href": "http://localhost/nodes/67951c73-8b93-4b98-9908-0bd16043e298/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67951c73-8b93-4b98-9908-0bd16043e298/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67951c73-8b93-4b98-9908-0bd16043e298/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67951c73-8b93-4b98-9908-0bd16043e298/volume", "rel": "self"}, {"href": "http://localhost/nodes/67951c73-8b93-4b98-9908-0bd16043e298/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.024533s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.045742s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.024586s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_management_indicators_get_admin [0.126026s] ... 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-681bab9b-2ff5-42e3-82e9-7999051a306c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_conductor_group_old_api [0.048309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f80bd68c-3b0a-46af-b22e-fe914a9617d9 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-99c55c4a-9af0-4681-8e37-e7552ef9e4e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.022741s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.080785s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_member [0.066989s] ... 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-37edccf1-be49-48a4-a467-a7bba89230d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_description [0.083936s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d1ea54a-9f31-4936-8abc-792ebd77b60e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "2fc0fb58-f54f-4078-9f8d-0a84721935ac", "created_at": "2025-03-28T10:18:25.861179+00:00", "updated_at": null, "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/2fc0fb58-f54f-4078-9f8d-0a84721935ac", "rel": "self"}, {"href": "http://localhost/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/states", "rel": "self"}, {"href": "http://localhost/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/volume", "rel": "self"}, {"href": "http://localhost/nodes/2fc0fb58-f54f-4078-9f8d-0a84721935ac/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.039636s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.028916s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer [0.069939s] ... 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-d4c90555-7caa-4817-8e3b-d39e30b182e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.030621s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.028329s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.028545s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.028122s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_109_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.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.043488s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.028356s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_110_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.338207s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.277721s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/6db85b5a-eb3b-492f-953d-8cf34a025543 WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812
    3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-eba641b1-552a-45ce-aa97-f1c4e469c187
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.051683s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.020878s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_111_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.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.025534s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.025782s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.057792s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.020272s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_112_portgroups_get_admin [0.068067s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3a589dc5-5a8b-46cf-8a0f-a95ffc4cf869
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.033044s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.059310s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.025489s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_member [0.066293s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3b9028f8-701c-4e1c-a170-22594faa62ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.028710s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.174304s] ... 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-ce194c53-245f-4b1b-b9bb-12dab7fc9bdd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.050980s] ... ok
{2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.038574s] ... ok
{2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.033575s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.070235s] ... ok
{2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.033421s] ... ok
{2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.032282s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.139801s] ... 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-94b10555-d2b2-42be-8f6f-78dfe3af32ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.059381s] ... ok
{2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.032053s] ... ok
{2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.027756s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.059780s] ... ok
{2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.023785s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.031912s] ... ok
{2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.043980s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.016343s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.017176s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.016843s] ... ok
{2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.052990s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_observer [0.337421s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8ca4f94d-a5e7-44ec-87f5-b58c0be90f1f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.048954s] ... 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-ecb33e90-2cf0-4066-9da6-eeadcbe9abf1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:26.682243+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.050651s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.038904s] ... 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-7b11745f-d12f-4341-9331-bfe7db1c6454
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.051577s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_post_admin [0.123596s] ... 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-b36e6f8c-00c7-460f-a054-ca095e49812f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.066098s] ... 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-7dc4e15a-3709-4a37-a641-afb1500b5db7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:26.772022+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.057061s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member [0.070459s] ... 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-75023634-ebc1-42ae-8207-767346e72f02
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.083569s] ... 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-cc9513ea-678f-4882-92f0-9a72cfeb8aaa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_observer [0.069003s] ... 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-677b0d82-9c22-453d-ab31-aec75e425664
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.058301s] ... 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-cfb012de-cf89-471b-a7ab-822cf4ad38ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:26.934300+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.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.135317s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.043366s] ... 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-fd21ca0d-0dd4-4119-ba52-da7247f58c06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_detail_get_admin [0.058388s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dce86320-bc99-4f09-8a53-ae07262555cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.526255s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ea227400-ca17-4c15-9b5c-2ced1dd60269 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a8628817-22d7-46bf-910e-970694fb2d98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "ea227400-ca17-4c15-9b5c-2ced1dd60269", "created_at": "2025-03-28T10:18:26.540043+00:00", "updated_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/ea227400-ca17-4c15-9b5c-2ced1dd60269", "rel": "self"}, {"href": "http://localhost/nodes/ea227400-ca17-4c15-9b5c-2ced1dd60269", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ea227400-ca17-4c15-9b5c-2ced1dd60269/ports", "rel": "self"}, {"href": "http://localhost/nodes/ea227400-ca17-4c15-9b5c-2ced1dd60269/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/4b66f9b8-ab2a-4a1a-b809-ac06058a05fe WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-570ee7e5-577b-43e5-a7ad-7104fad5caeb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "4b66f9b8-ab2a-4a1a-b809-ac06058a05fe", "created_at": "2025-03-28T10:18:26.587049+00:00", "updated_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/4b66f9b8-ab2a-4a1a-b809-ac06058a05fe", "rel": "self"}, {"href": "http://localhost/nodes/4b66f9b8-ab2a-4a1a-b809-ac06058a05fe", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4b66f9b8-ab2a-4a1a-b809-ac06058a05fe/ports", "rel": "self"}, {"href": "http://localhost/nodes/4b66f9b8-ab2a-4a1a-b809-ac06058a05fe/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/43a7314b-e6c2-4158-83df-113af2efa870 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fd953f11-8a8e-4c35-a9b9-88fe44f047c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "43a7314b-e6c2-4158-83df-113af2efa870", "created_at": "2025-03-28T10:18:26.644144+00:00", "updated_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/43a7314b-e6c2-4158-83df-113af2efa870", "rel": "self"}, {"href": "http://localhost/nodes/43a7314b-e6c2-4158-83df-113af2efa870", "rel": "bookmark"}
    ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/43a7314b-e6c2-4158-83df-113af2efa870/ports", "rel": "self"}, {"href": "http://localhost/nodes/43a7314b-e6c2-4158-83df-113af2efa870/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/c1f69182-2bd1-422a-b899-3df9c9a2c298 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ecf7e072-6857-4aa9-ac5a-a97c2452b299
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "c1f69182-2bd1-422a-b899-3df9c9a2c298", "created_at": "2025-03-28T10:18:26.698643+00:00", "updated_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/c1f69182-2bd1-422a-b899-3df9c9a2c298", "rel": "self"}, {"href": "http://localhost/nodes/c1f69182-2bd1-422a-b899-3df9c9a2c298", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c1f69182-2bd1-422a-b899-3df9c9a2c298/ports", "rel": "self"}, {"href": "http://localhost/nodes/c1f69182-2bd1-422a-b899-3df9c9a2c298/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/c8dec0aa-232b-4e64-9cef-afe60808b384 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-71e0899e-ebd2-4d42-94fc-2de2b864d839
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "c8dec0aa-232b-4e64-9cef-afe60808b384", "created_at": "2025-03-28T10:18:26.729307+00:00", "updated_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/c8dec0aa-232b-4e64-9cef-afe60808b384", "rel": "self"}, {"href": "http://localhost/nodes/c8dec0aa-232b-4e64-9cef-afe60808b384", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c8dec0aa-232b-4e64-9cef-afe60808b384/ports", "rel": "self"}, {"href": "http://localhost/nodes/c8dec0aa-232b-4e64-9cef-afe60808b384/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/357fdcb7-49bd-4804-bba7-a529bd9ef4c1 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-acc7a75b-e674-43e6-865d-09797586f521
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "357fdcb7-49bd-4804-bba7-a529bd9ef4c1", "created_at": "2025-03-28T10:18:26.759240+00:00", "updated_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/357fdcb7-49bd-4804-bba7-a529bd9ef4c1", "rel": "self"}, {"href": "http://localhost/nodes/357fdcb7-49bd-4804-bba7-a529bd9ef4c1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/357fdcb7-49bd-4804-bba7-a529bd9ef4c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/357fdcb7-49bd-4804-bba7-a529bd9ef4c1/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/2d8f7458-7284-46a6-9625-666c0ac5094d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-406fea36-1fb8-4e78-a99b-a3f6dc484488
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "2d8f7458-7284-46a6-9625-666c0ac5094d", "created_at": "2025-03-28T10:18:26.789237+00:00", "updated_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/2d8f7458-7284-46a6-9625-666c0ac5094d", "rel": "self"}, {"href": "http://localhost/nodes/2d8f7458-7284-46a6-9625-666c0ac5094d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2d8f7458-7284-46a6-9625-666c0ac5094d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2d8f7458-7284-46a6-9625-666c0ac5094d/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/b1c68a21-7949-4abd-bd71-b85cfc9ec5e1 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d662d023-f017-41c5-a6a1-579c32787e46
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b1c68a21-7949-4abd-bd71-b85cfc9ec5e1", "created_at": "2025-03-28T10:18:26.818989+00:00", "updated_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/b1c68a21-7949-4abd-bd71-b85cfc9ec5e1", "rel": "self"}, {"href": "http://localhost/nodes/b1c68a21-7949-4abd-bd71-b85cfc9ec5e1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b1c68a21-7949-4abd-bd71-b85cfc9ec5e1/ports", "rel": "self"}, {"href": "http://localhost/nodes/b1c68a21-7949-4abd-bd71-b85cfc9ec5e1/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/4facd640-827c-4e6d-b6a7-5fedc611d449 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af59892f-0495-49f7-83b9-a5e797457261
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "4facd640-827c-4e6d-b6a7-5fedc611d449", "created_at": "2025-03-28T10:18:26.847870+00:00", "updated_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/4facd640-827c-4e6d-b6a7-5fedc611d449", "rel": "self"}, {"href": "http://localhost/nodes/4facd640-827c-4e6d-b6a7-5fedc611d449", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4facd640-827c-4e6d-b6a7-5fedc611d449/ports", "rel": "self"}, {"href": "http://localhost/nodes/4facd640-827c-4e6d-b6a7-5fedc611d449/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/b9b03980-d5be-4704-8762-1777e5b657a6 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-715ef17b-3387-4f0d-99b1-064b36cf98f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b9b03980-d5be-4704-8762-1777e5b657a6", "created_at": "2025-03-28T10:18:26.876663+00:00", "updated_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/b9b03980-d5be-4704-8762-1777e5b657a6", "rel": "self"}, {"href": "http://localhost/nodes/b9b03980-d5be-4704-8762-1777e5b657a6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b9b03980-d5be-4704-8762-1777e5b657a6/ports", "rel": "self"}, {"href": "http://localhost/nodes/b9b03980-d5be-4704-8762-1777e5b657a6/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/fb292a82-b3a3-4283-89c2-62b550d5d0bb WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-515170d5-f27c-449c-87f7-3904228eaf51
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "fb292a82-b3a3-4283-89c2-62b550d5d0bb", "created_at": "2025-03-28T10:18:26.908900+00:00", "updated_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/fb292a82-b3a3-4283-89c2-62b550d5d0bb", "rel": "self"}, {"href": "http://localhost/nodes/fb292a82-b3a3-4283-89c2-62b550d5d0bb", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fb292a82-b3a3-4283-89c2-62b550d5d0bb/ports", "rel": "self"}, {"href": "http://localhost/nodes/fb292a82-b3a3-4283-89c2-62b550d5d0bb/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/c9918337-4ec3-4a38-a108-dd9a75eed433 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6ca2af6e-7094-49cc-a0ab-354dc876c332
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "c9918337-4ec3-4a38-a108-dd9a75eed433", "created_at": "2025-03-28T10:18:26.966062+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/c9918337-4ec3-4a38-a108-dd9a75eed433", "rel": "self"}, {"href": "http://localhost/nodes/c9918337-4ec3-4a38-a108-dd9a75eed433", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c9918337-4ec3-4a38-a108-dd9a75eed433/ports", "rel": "self"}, {"href": "http://localhost/nodes/c9918337-4ec3-4a38-a108-dd9a75eed433/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/bd79cc6d-67be-47fd-b84a-a54704daaf19 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9212cc68-12bb-410f-8560-45aaf950943e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "bd79cc6d-67be-47fd-b84a-a54704daaf19", "created_at": "2025-03-28T10:18:26.996400+00:00", "updated_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/bd79cc6d-67be-47fd-b84a-a54704daaf19", "rel": "self"}, {"href": "http://localhost/nodes/bd79cc6d-67be-47fd-b84a-a54704daaf19", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bd79cc6d-67be-47fd-b84a-a54704daaf19/ports", "rel": "self"}, {"href": "http://localhost/nodes/bd79cc6d-67be-47fd-b84a-a54704daaf19/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.074986s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.048899s] ... 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-55e26d9c-2f6e-43a5-a174-94779f7dd6c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.044288s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_member [0.108426s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0d1aa513-2c38-4e01-95d9-39ad9868fb93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.073014s] ... 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-ea3864b2-69d1-4af4-940b-1be328e91d76
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:27.079750+00:00", "updated_at": "2025-03-28T10:18:27.082993+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-2659eed6-9ffd-4295-aa5f-773a654d6edd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:27.079750+00:00", "updated_at": "2025-03-28T10:18:27.082993+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.099720s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-755bbc59-d365-4ff6-9e4e-22a23173784b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "f321e6ba-f5df-4422-93e7-94117a38bb0b", "created_at": "2025-03-28T10:18:27.069052+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/f321e6ba-f5df-4422-93e7-94117a38bb0b", "rel": "self"}, {"href": "http://localhost/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/ports", "rel": "self"}, {"href": "http://localhost/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/states", "rel": "self"}, {"href": "http://localhost/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/volume", "rel": "self"}, {"href": "http://localhost/nodes/f321e6ba-f5df-4422-93e7-94117a38bb0b/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.048738s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_observer [0.057603s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b0b5bfbc-df03-427b-a7b9-bcfdd2a5f77d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.067215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/7bb59b10-0166-43ae-b075-aa57810896f1 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-b869fa76-63e0-4b30-9298-c346e6141227
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"7bb59b10-0166-43ae-b075-aa57810896f1\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.076768s] ... 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-0c84b8ea-3826-4d9a-bb3a-c804e374c095
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.072103s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin [0.065915s] ... 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-730468f0-010d-4676-a1bd-a9423ca7a035
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.086555s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_member [0.064415s] ... 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-83a46149-6ca5-4313-9503-0c3ccdedc76a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.109282s] ... 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-13338cda-5fd2-4203-8ba9-fac7e517663f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.043998s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.044211s] ... 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-5fca1ac1-dbf6-4ec1-94eb-20a0248946d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer [0.079102s] ... 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-d6412423-cd9b-4b94-a194-464e00732b08
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.047685s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.056148s] ... 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-37b78548-f8d2-4e40-92d0-c085c9cd0461
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.045895s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin [0.072223s] ... 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-6ac11ae6-d603-4dbd-ba92-5bfba058c5ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.046255s] ... 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-67098e8d-a14f-4ad9-b07d-68a697bde507
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.067595s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.060988s] ... 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-20891845-00f5-457e-a723-0b6447cbe57a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:27.503593+00:00", "updated_at": "2025-03-28T10:18:27.506809+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.021692s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member [0.083439s] ... 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-c7aced84-2277-4bff-8e7d-8cf9518ef8df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.039927s] ... 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-6845c005-7e58-4997-acf8-56fba9985a19
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.040054s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.390141s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1f924fa4-42ed-4943-9edd-6121d258c5c2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-084b71b4-ec2f-4b5b-8fd8-e12dd95b8822
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-17f4f356-04e4-4eed-8c76-48fe0753d31f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel"
    : "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f9a2bcf6-c1e9-4b6b-88e8-7fea94d4e19b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT 
    Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bd56e321-ba91-4e77-956d-0e0f0a4a37d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cec31116-e6a1-4d3d-8a1d-83f54abeba7e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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": fals
    e, "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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce4b684d-13da-4581-8ed4-8ffd1b4cd728
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/node
    s/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-226b78bb-1727-4a10-b4a0-55b9c755da38
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "created_at": "2025-03-28T10:18:27.240365+00:00", "updated_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/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/acaccf4e-eb1f-4a11-8e07-4adaf80c51f8/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer [0.069910s] ... 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-e9b3ad9c-70f7-42e8-aa4d-dc0baf60d9dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.045652s] ... 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-9ed7dbeb-6326-4829-852f-cef7054cd669
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:27.593662+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.050795s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.039896s] ... 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-5695b02d-1dc3-49b4-9260-0681527b9b37
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.043162s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.096464s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-db8c7570-a0f1-4965-a490-d3a9890799ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-3e090553-933b-4cd4-9a02-5c6a539a526c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-07ee8622-861c-42ed-aaff-547f8114cf7c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bb536928-1f3f-4b84-bc4c-504d352f0296
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-6b3432e5-cff3-42ea-8b74-aa64b137b3d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-0935125d-0e22-4982-a61c-43a924b58deb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bd496bd8-5ccc-43fa-949f-3221270a1212
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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/c90843d2-1470-4e13-823d-f41200714c06 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-7ba12edc-2d30-4982-8f57-e6ede4fc4638
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin [0.079570s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-795f3d95-7b58-432d-a810-3eee6395de8b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.052497s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.068159s] ... 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-0f169640-45bc-426d-b49d-bf2c3a7f5f2c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member [0.068864s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fc1125f2-dcdc-481d-b863-74ec1b4be83b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.045913s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.063591s] ... 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-b2072fbd-1d57-4541-b479-036488d04f87
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:27.777562+00:00", "updated_at": null, "connector_id": "test-connector-id-999", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.031634s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee [0.136337s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/25d8a1c1-321f-416a-8c20-67af439023a5 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9dbea656-da2f-48c9-a3c3-d047458228c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "25d8a1c1-321f-416a-8c20-67af439023a5", "created_at": "2025-03-28T10:18:27.736454+00:00", "updated_at": null, "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/25d8a1c1-321f-416a-8c20-67af439023a5", "rel": "self"}, {"href": "http://localhost/nodes/25d8a1c1-321f-416a-8c20-67af439023a5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/ports", "rel": "self"}, {"href": "http://localhost/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/states", "rel": "self"}, {"href": "http://localhost/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/volume", "rel": "self"}, {"href": "http://localhost/nodes/25d8a1c1-321f-416a-8c20-67af439023a5/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.026622s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.024427s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.051909s] ... 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-35c12e32-888b-41b8-a970-9953d1e74ccc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:27.831072+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.024368s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.029795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.025349s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer [0.141731s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6c9aac22-3e66-4288-b7f3-0699321b946e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 [0.024857s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api [0.113240s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9ea7c922-3359-4af5-8656-ae7814256bf6 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-9656bb25-1999-43e6-83b3-658be3dfcbda
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.common.test_nova.NovaApiTestCase.test_power_update_failed [0.024358s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_nodes_portgroups_get_admin [0.070840s] ... 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-ce104a95-d998-4b59-b010-b305bdfaab69
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.023933s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.024894s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.024299s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_member [0.063061s] ... 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-0bc23634-8939-4340-a4a9-94acd6973a85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.024301s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.025551s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.023320s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_observer [0.062108s] ... 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-69b6c31c-c7e8-4f2d-9fd6-8ef7a506e036
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_connector.TestPatch.test_update_not_found [0.231285s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/067cac8f-d34c-4186-b8af-72501877dee7 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ab79d383-a149-4667-93ff-75132a75afe5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 067cac8f-d34c-4186-b8af-72501877dee7 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.023120s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.024077s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.043194s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-7be8aa32-1606-4af0-84c5-eaca2f6306b8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_detail_get_admin [0.068489s] ... 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-4b9eb500-4b8c-486f-ace6-05ac6b513a66
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_network_data [0.231086s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004 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-b96ed40a-18af-4355-8598-8f18cec06fbd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "4862a9ec-dd83-4f49-98c6-2a859fef2004", "created_at": "2025-03-28T10:18:28.031232+00:00", "updated_at": null, "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/4862a9ec-dd83-4f49-98c6-2a859fef2004", "rel": "self"}, {"href": "http://localhost/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004/ports", "rel": "self"}, {"href": "http://localhost/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4862a9ec-dd83-4f49-98c6
    -2a859fef2004/states", "rel": "self"}, {"href": "http://localhost/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004/volume", "rel": "self"}, {"href": "http://localhost/nodes/4862a9ec-dd83-4f49-98c6-2a859fef2004/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.062990s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.070279s] ... 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.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.025296s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.020768s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_member [0.096670s] ... 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-964f72b8-1763-4ea9-8bd5-e86a038517d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_network_data_custom [0.093304s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d9101f70-d824-4f51-a68b-d48642a9a461
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "0b813f0c-7e60-4c2e-942a-26cd2ecb1c16", "created_at": "2025-03-28T10:18:28.225883+00:00", "updated_at": null, "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/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16", "rel": "self"}, {"href": "http://localhost/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/ports", "rel": "self"}, {"href": "http://localhost/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/states", "rel": "self"}, {"href": "http://localhost/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/volume", "rel": "self"}, {"href": "http://localhost/nodes/0b813f0c-7e60-4c2e-942a-26cd2ecb1c16/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.020547s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.020070s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.080534s] ... 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-36ab5b84-bbbc-4329-b7ab-7183f1f4fc68
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.020579s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api [0.061504s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ede94e03-7c14-4b62-afcd-c803c8ec0ef0 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-b12ae8c3-c0b1-48f1-b22b-ef0e6d325e30
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.019858s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.050047s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-6ad72128-dd8f-4d06-8ba2-8a4732b0e060
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.020624s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_observer [0.129747s] ... 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-68fa0a3f-912b-4c0b-a3c3-da1989fc471d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.044893s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.065746s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/99e3bfdb-f4e4-44f2-af60-21b89eb8c7fc WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c2dfd022-09f2-40ea-965c-0c50bf902101
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin [0.063939s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1e809716-d9f5-43fa-b4ce-661c4366b697
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.044957s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.129795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-79cb39eb-1454-44b1-ba9b-2e4f5ed591ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1da4269c-5170-4e9c-931f-f7f6c528cf38", "created_at": "2025-03-28T10:18:28.496964+00:00", "updated_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/1da4269c-5170-4e9c-931f-f7f6c528cf38", "rel": "self"}, {"href": "http://localhost/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/ports", "rel": "self"}, {"href": "http://localhost/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/states", "rel": "self"}, {"href": "http://localhost/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/volume", "rel": "self"}, {"href": "http://localhost/nodes/1da4269c-5170-4e9c-931f-f7f6c528cf38/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_member [0.083192s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-02bf8e83-4033-451a-8c1e-b0ddc3b91000
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.129044s] ... 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-9a50948f-3823-4a35-95f4-d6c4edea4d8f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.050215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ca408068-0ee7-4866-8400-e89206d733f5 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-8d639ca8-79ab-4fb9-9c2c-872f98a436e3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestRBACScoped.test_rbac_legacy_138_ports_get_observer [0.059369s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a4fba118-bbbb-4b32-969b-e08138f7cc14
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin [0.070132s] ... 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-3b96a64d-0f36-43ba-9530-b21034d34f1f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.096834s] ... 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-2d55d0e8-7ae0-4275-9490-be6e93e12e9e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:28.633600+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.273592s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.023098s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.209851s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4fcb986a-3c95-4435-8ebf-df6c02ae4651
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.022177s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.098195s] ... 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-4a265263-8ca2-4bfc-9f75-bc033f7af3b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:28.729926+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.021754s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.019279s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_member [0.154138s] ... 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-17576b3a-4a2b-43e4-8b47-3446c20f947d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.093402s] ... 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-f925abcd-fdae-4af4-9331-9b955f340dcf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:28.830751+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_observer [0.080964s] ... 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-04b80d09-0f0a-4076-bbdd-f9015e560155
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.097119s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin [0.067574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f3a71ace-6510-4493-988b-d63116882bef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.065513s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.221873s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-021a60cf-496f-4b82-884a-1312107fd56c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.121430s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4c8d8b6c-3bbc-4d46-ae26-2dd493158589
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "ab3b446b-b8f9-4aa9-a5ba-19221ec60841", "created_at": "2025-03-28T10:18:28.942622+00:00", "updated_at": null, "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/ab3b446b-b8f9-4aa9-a5ba-19221ec60841", "rel": "self"}, {"href": "http://localhost/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/ports", "rel": "self"}, {"href": "http://localhost/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/states", "rel": "self"}, {"href": "http://localhost/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/volume", "rel": "self"}, {"href": "http://localhost/nodes/ab3b446b-b8f9-4aa9-a5ba-19221ec60841/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.047921s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin [0.079786s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-486165c6-bc20-491e-bf96-67a04a0f28b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:29.040723+00:00", "updated_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-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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.046214s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_member [0.116186s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e54b9b30-7129-43f1-95fe-193820e3bb85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.040004s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member [0.073366s] ... 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-ac3d552e-cdb7-4053-92c2-99a2b51bd28d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.041839s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_observer [0.108100s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e506db9b-1553-421d-b1ae-c2ed8aa0328b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.054537s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.208893s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c3648545-8511-48de-860d-02df9357bfa2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "8bcb3e12-1d67-49b5-a0b3-9f76fbde8848", "created_at": "2025-03-28T10:18:29.122421+00:00", "updated_at": null, "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/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848", "rel": "self"}, {"href": "http://localhost/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/ports", "rel": "self"}, {"href": "http://localhost/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/states", "rel": "self"}, {"href": "http://localhost/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/volume", "rel": "self"}, {"href": "http://localhost/nodes/8bcb3e12-1d67-49b5-a0b3-9f76fbde8848/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer [0.081182s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7475dbe-75c0-496c-ad4c-49b4065fe23f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:29.193310+00:00", "updated_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-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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.038612s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_port_id_get_admin [0.072853s] ... 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-6adc3ff0-c597-45c5-8e6e-9df94e93a760
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.040249s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin [0.075898s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ba930c4-a460-4cc8-9c80-73058cd1f2ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:29.276523+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.104897s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d6ed6dc7-340e-46fb-a3aa-916e5a46a8fe WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-e4b61818-5154-481f-b7e2-40797a5f0f7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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 \\\"d6ed6dc7-340e-46fb-a3aa-916e5a46a8fe\\\" while it is allocated to an allocation with an  owner.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.045772s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.048890s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/68895c6b-ed50-4872-98da-75a774e99318 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f6466c4f-b10f-471b-9ee0-f70427428b58
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.078781s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4cbff8c9-7f5c-415f-b236-25c2443e2848
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "40dc264b-181f-4ae8-95f2-cc74fd544a5c", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_member [0.118353s] ... 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-aa1e2f78-3880-40e9-b65b-44e168dff0b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.086374s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.084706s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-531e811f-688f-4155-a90c-631a38cbcda4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "2a8fb74b-ebe6-414d-b16e-e6e62e262031", "created_at": "2025-03-28T10:18:29.424633+00:00", "updated_at": null, "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/2a8fb74b-ebe6-414d-b16e-e6e62e262031", "rel": "self"}, {"href": "http://localhost/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/ports", "rel": "self"}, {"href": "http://localhost/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/states", "rel": "self"}, {"href": "http://localhost/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/volume", "rel": "self"}, {"href": "http://localhost/nodes/2a8fb74b-ebe6-414d-b16e-e6e62e262031/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.051848s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin [0.083800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae3eb87b-735a-41f6-8c50-cc6dacf0cc44
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "49ea9dde-78f6-44ea-b705-506c59b9e09f", "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.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.039032s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_observer [0.156197s] ... 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-4a23e41f-8589-4f69-b734-56c9fa9b51da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.087449s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/23da45f7-65b8-4068-8a4a-4d65a648a46e WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-3b18e42c-510e-4c41-9154-6544d81e84b8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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 \\\"23da45f7-65b8-4068-8a4a-4d65a648a46e\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.041884s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin [0.085683s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d29e856a-c22e-4ae8-b7bd-84843ea338ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:29.525383+00:00", "updated_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-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-03-28T10:18:29.526695+00:00", "updated_at": "2025-03-28T10:18:29.530148+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-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": "33938477-da8e-49c0-95c6-3263877d8e94", "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": "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, "secure_boot": null, "service_step": {}, "shard": null, "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": "33938477-da8e-49c0-95c6-3263877d8e94", "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-03-28T10:18:29.547702+00:00", "updated_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/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11
    /portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.043573s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.069940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d748e14d-6132-4571-b4eb-3028288582b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.035717s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.133906s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e99c4e92-79b1-455d-8fbc-616e540ae3bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "c1c9b966-6026-4f54-a599-bf309ab995b0", "created_at": "2025-03-28T10:18:29.636308+00:00", "updated_at": null, "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/c1c9b966-6026-4f54-a599-bf309ab995b0", "rel": "self"}, {"href": "http://localhost/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/ports", "rel": "self"}, {"href": "http://localhost/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/states", "rel": "self"}, {"href": "http://localhost/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/volume", "rel": "self"}, {"href": "http://localhost/nodes/c1c9b966-6026-4f54-a599-bf309ab995b0/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.042163s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_patch_admin [0.145846s] ... 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-187223e6-5aad-43e4-b862-356ce4471c1c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer [0.084626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-624b85b8-6c0f-4fae-a31f-c9e9cdb4eac2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:29.682613+00:00", "updated_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-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-03-28T10:18:29.683912+00:00", "updated_at": "2025-03-28T10:18:29.687345+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-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": "39a98648-3264-42ea-8391-f232ea90bb41", "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": "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, "secure_boot": null, "service_step": {}, "shard": null, "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": "39a98648-3264-42ea-8391-f232ea90bb41", "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-03-28T10:18:29.709582+00:00", "updated_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/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11
    /portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.050869s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/03bec481-d3c9-46a7-bf8e-e3c94a68fbaa WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-74d39d10-3d54-49cd-8e69-47bebb5f56c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.085568s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_member [0.092658s] ... 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-9e0342f4-865f-4570-82b2-7f2b118d5c0f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.057986s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.122866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06e99451-1630-470f-8a4c-1948323753c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:29.769043+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_observer [0.080606s] ... 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-d6c20ccd-2d8f-4ebe-b9a6-7f9724e1f17c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.030787s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.163128s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/598a480a-90bb-44d7-b307-320ea25eea59 WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0655f5b1-26c2-4097-bcb4-010fb651a73a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "598a480a-90bb-44d7-b307-320ea25eea59", "created_at": "2025-03-28T10:18:29.821751+00:00", "updated_at": null, "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/598a480a-90bb-44d7-b307-320ea25eea59", "rel": "self"}, {"href": "http://localhost/nodes/598a480a-90bb-44d7-b307-320ea25eea59", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/598a480a-90bb-44d7-b307-320ea25eea59/ports", "rel": "self"}, {"href": "http://localhost/nodes/598a480a-90bb-44d7-b307-320ea25eea59/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/598a480a-90bb-44d7-b307-320ea25eea59/states", "rel": "self"}, {"href": "http://localhost/nodes/598a480a-90bb-44d7-b307-320ea25eea59/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/598a480a-90bb-44d7-b307-320ea25eea59/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/598a480a-90bb-44d7-b307-320ea25eea59/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/598a480a-90bb-44d7-b307-320ea25eea59/volume", "rel": "self"}, {"href": "http://localhost/nodes/598a480a-90bb-44d7-b307-320ea25eea59/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.038045s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_delete_admin [0.078251s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-66170155-988c-463e-abc2-3f8da8b1f52e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.029231s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member [0.116265s] ... 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-ef8dc998-6caa-4558-89bd-1610c9c60016
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.027949s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.096268s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617 WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6733fdc2-4bcf-4d58-b2c9-d904d5531a7b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "df6cfbec-bc7b-4327-9362-71bc3ac02617", "created_at": "2025-03-28T10:18:29.953444+00:00", "updated_at": null, "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/df6cfbec-bc7b-4327-9362-71bc3ac02617", "rel": "self"}, {"href": "http://localhost/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/ports", "rel": "self"}, {"href": "http://localhost/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/states", "rel": "self"}, {"href": "http://localhost/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/volume", "rel": "self"}, {"href": "http://localhost/nodes/df6cfbec-bc7b-4327-9362-71bc3ac02617/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.036613s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.071566s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e0972413-10f8-4543-8a53-f69885d0bacf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:30.017334+00:00", "updated_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-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.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.048731s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string [0.090841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3 WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f6dfd225-44e8-4a17-b350-e3652a685ba5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "012339ce-9cb8-4338-927e-5f46641d9cc3", "created_at": "2025-03-28T10:18:30.049578+00:00", "updated_at": null, "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/012339ce-9cb8-4338-927e-5f46641d9cc3", "rel": "self"}, {"href": "http://localhost/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/ports", "rel": "self"}, {"href": "http://localhost/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/states", "rel": "self"}, {"href": "http://localhost/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/volume", "rel": "self"}, {"href": "http://localhost/nodes/012339ce-9cb8-4338-927e-5f46641d9cc3/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_member [0.150961s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-07b16fdf-8cac-434e-9543-32dbbbff3c13
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.103974s] ... 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-c4310cbc-64b3-4201-8caf-741030e095d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.073748s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.089329s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/dbd105ca-6810-4a8c-a820-ceb623f14c8c WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4ac92461-643f-4c14-89c8-ee198cf4e9f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid protected: Unrecognized value 'YeahNahGood', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.080800s] ... 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-315755f8-50b2-4314-b4f0-5a0ba4e4677c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.082583s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.116477s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a 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-fe33cbe6-6b71-42d2-9366-8061a754152d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "f834fa0f-8b39-4ae4-9047-e328c73a7a1a", "created_at": "2025-03-28T10:18:30.238258+00:00", "updated_at": null, "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/f834fa0f-8b39-4ae4-9047-e328c73a7a1a", "rel": "self"}, {"href": "http://localhost/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/ports", "rel": "self"}, {"href": "http://localhost/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/states", "rel": "self"}, {"href": "http://localhost/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/volume", "rel": "self"}, {"href": "http://localhost/nodes/f834fa0f-8b39-4ae4-9047-e328c73a7a1a/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.072571s] ... 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-18ab279c-f9b7-4223-a19e-d7a2b66ad15d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.071620s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.090679s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.119398s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/17e35092-35bb-46ff-81a3-6ff139fe728d WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-85a98154-a4b6-4c6a-be82-7350b8ea3115
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "17e35092-35bb-46ff-81a3-6ff139fe728d", "created_at": "2025-03-28T10:18:30.359815+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/17e35092-35bb-46ff-81a3-6ff139fe728d", "rel": "self"}, {"href": "http://localhost/nodes/17e35092-35bb-46ff-81a3-6ff139fe728d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/17e35092-35bb-46ff-81a3-6ff139fe728d/ports", "rel": "self"}, {"href": "http://localhost/nodes/17e35092-35bb-46ff-81a3-6ff139fe728d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/17e35092-35bb-46ff-81a3-6ff139fe728d/states", "rel": "self"}, {"href": "http://localhost/nodes/17e35092-35bb-46ff-81a3-6ff139fe728d/states", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_observer [0.324969s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8c1fea1f-f99d-4ef7-9cb0-1ed89b078980
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.127604s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b06139b8-1f5d-4daf-a6ad-2ed4c359d925
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_kickstart_stage2_missing [0.074347s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.038009s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_nodes_ports_get_admin [0.112955s] ... 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-37234089-3ee2-4e66-8fef-e2bd0e90085b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.049643s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.156572s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fc86808f-0009-42ea-9591-a181815fe333
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_member [0.063280s] ... 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-2b3f47fc-fa9b-4a04-8f5a-ae4522451f32
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_resource_class_max_length [0.201173s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/8835ffd9-d3f2-4715-b3cc-6d45e8107c10 WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-afdbb2d0-5b4b-450c-ab6c-611655acfd2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "8835ffd9-d3f2-4715-b3cc-6d45e8107c10", "created_at": "2025-03-28T10:18:30.519479+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/8835ffd9-d3f2-4715-b3cc-6d45e8107c10", "rel": "self"}, {"href": "http://localhost/nodes/8835ffd9-d3f2-4715-b3cc-6d45e8107c10", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8835ffd9-d3f2-4715-b3cc-6d45e8107c10/ports", "rel": "self"}, {"href": "http://localhost/nodes/8835ffd9-d3f2-4715-b3cc-6d45e8107c10/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8835ffd9-d3f2-4715-b3cc-6d45e8107c10/states", "rel": "self"}, {"href": "http://localhost/nodes/8835ffd9-d3f2-4715-b3cc-6d45e8107c10/states", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_observer [0.060656s] ... 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-b7b6a4af-95ce-43b2-8121-f6f4384d90b5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_resource_class_old_api [0.052596s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/518b43bd-d538-4e2a-a01a-84ad1806f1d6 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-ea57222b-f664-4639-8fdb-22a420472af9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.114174s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_detail_get_admin [0.063870s] ... 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-7127e2d3-cae6-4029-bf4e-347ec631ba66
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.165327s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-94cc3876-9ee5-4530-9d98-f34089d336a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.089932s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/4bc7459e-5d18-4804-af01-f06e9e017ba2 WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1dfab57f-6174-44be-ab09-b3d6b573a529
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.114557s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_member [0.086373s] ... 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-137e9ac3-831e-49c9-a7f4-a1a51531108b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.069422s] ... 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-9e9e7346-84a1-43a2-9893-2e8223ea963e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.033521s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.025943s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired [0.117767s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d7ebdaf1-0b5a-4892-9d0c-c8fb5f21d59b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "6e7ccedc-ce8a-4711-b228-ee6e9640a19a", "created_at": "2025-03-28T10:18:30.812058+00:00", "updated_at": null, "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/6e7ccedc-ce8a-4711-b228-ee6e9640a19a", "rel": "self"}, {"href": "http://localhost/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/ports", "rel": "self"}, {"href": "http://localhost/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/states", "rel": "self"}, {"href": "http://localhost/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/volume", "rel": "self"}, {"href": "http://localhost/nodes/6e7ccedc-ce8a-4711-b228-ee6e9640a19a/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.027448s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_observer [0.079621s] ... 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-32ae6757-a7d2-453c-929c-cc2ae6fc49f6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.068102s] ... 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-7010b5da-ee1b-42b3-8e49-6949982e5310
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.034465s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.024047s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.073107s] ... 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-b6e805a3-96f1-47f7-a09b-a9ff17d1c671
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.025633s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_portgroups_ports_get_admin [0.082884s] ... 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-c29630eb-5f01-48d8-9fe4-c89c489fcd0c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.100487s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ff83243e-f222-4f4e-b663-7bd3eca81427 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-47c33fa5-8a08-480c-91ae-66a22b725cdf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.026783s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.027377s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin [0.069680s] ... 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-7a32317f-b9f9-417e-ae4b-003141fb58cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_member [0.067356s] ... 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-db1fca18-a844-450f-a11c-3a9f31cd8422
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.029079s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.025012s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.032727s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.076292s] ... 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-2593baf2-b1f6-4bc5-a817-ff3a060fb28a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_observer [0.081100s] ... 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-64ba30ff-c6df-4d54-96f5-f9339f47f6c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.030293s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.026447s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.070421s] ... 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-c10f56c9-0189-4a02-b096-157329a10a87
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.027679s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.024691s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.025420s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_detail_get_admin [0.134849s] ... 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-440cd381-535b-4965-90ff-c4133fedefaf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.080574s] ... 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-9fd7aee8-037c-4089-8af3-402e6194e032
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.028692s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.026740s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member [0.080966s] ... 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-fb4065ff-87f7-4afd-a7fe-de6b0ee1b42b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.052883s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_member [0.112123s] ... 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-945a0af9-4bda-467d-8d96-5e7e7995801a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.444065s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042 WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1b5993a2-1029-413f-a926-4040b2ad67e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "492a9d40-4eca-4c6d-95ce-726ee0430042", "created_at": "2025-03-28T10:18:31.365778+00:00", "updated_at": null, "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/492a9d40-4eca-4c6d-95ce-726ee0430042", "rel": "self"}, {"href": "http://localhost/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/ports", "rel": "self"}, {"href": "http://localhost/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/states", "rel": "self"}, {"href": "http://localhost/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/volume", "rel": "self"}, {"href": "http://localhost/nodes/492a9d40-4eca-4c6d-95ce-726ee0430042/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_observer [0.064722s] ... 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-d306bfe4-848c-4d56-85b2-2fd812d66946
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.084416s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_volume_get_admin [0.058072s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f0a55a93-b21b-4282-9b0b-d84d9e817302
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.083194s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove [0.114364s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724 WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9a867141-4ee6-488e-88ea-9cc2f59164ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "d7f7f828-7d42-4b41-8e79-badc0564c724", "created_at": "2025-03-28T10:18:31.485801+00:00", "updated_at": null, "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/d7f7f828-7d42-4b41-8e79-badc0564c724", "rel": "self"}, {"href": "http://localhost/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/ports", "rel": "self"}, {"href": "http://localhost/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/states", "rel": "self"}, {"href": "http://localhost/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/volume", "rel": "self"}, {"href": "http://localhost/nodes/d7f7f828-7d42-4b41-8e79-badc0564c724/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_member [0.057708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f2e6e9b2-fae1-4d62-8b52-f5e085cb1b12
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.064682s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason [0.105641s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615 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-6438df36-b062-4662-a699-a6c349f31a26
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "08120df1-c9bb-4b9e-90a7-ba0f57b0e615", "created_at": "2025-03-28T10:18:31.608211+00:00", "updated_at": null, "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/08120df1-c9bb-4b9e-90a7-ba0f57b0e615", "rel": "self"}, {"href": "http://localhost/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/ports", "rel": "self"}, {"href": "http://localhost/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/states", "rel": "self"}, {"href": "http://localhost/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/volume", "rel": "self"}, {"href": "http://localhost/nodes/08120df1-c9bb-4b9e-90a7-ba0f57b0e615/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_observer [0.118833s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e2527088-8b22-417f-9211-38dd7c647612
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.042718s] ... 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-f8174989-83a6-4ab7-8184-520415fda435
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.379018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c033fd00-3475-4744-91fe-790483bb83cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin [0.080266s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7fdae293-6cc3-4dea-b442-9023d6f7c1e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.154908s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.084393s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c01d373-53e0-45bd-88cd-ea3d7f67a5c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ef2f8cf3-6d6b-474a-999a-8e93de620f08", "created_at": "2025-03-28T10:18:31.737371+00:00", "updated_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/ef2f8cf3-6d6b-474a-999a-8e93de620f08", "rel": "self"}, {"href": "http://localhost/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/ports", "rel": "self"}, {"href": "http://localhost/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/states", "rel": "self"}, {"href": "http://localhost/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/volume", "rel": "self"}, {"href": "http://localhost/nodes/ef2f8cf3-6d6b-474a-999a-8e93de620f08/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.070958s] ... 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-b796563d-b3fc-474f-9d34-a0c80cf10fd1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.056453s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_member [0.081844s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8d195452-ff02-47d0-a648-f3e1b7fdef9a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.076435s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/bcb1f3af-b603-406f-b5dc-056f36afa629 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-be5ee1be-6a8c-4480-8981-d402b602db44
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.058645s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.079114s] ... 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-80073619-9e1e-48bf-86c7-545c7c27b02e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_node.TestPatch.test_update_traits [0.053755s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/a9ea4964-38d8-4fd2-a2ed-ddfcff00be5f WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-94346d07-d4f3-448d-b498-2de6d86fb270
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_observer [0.074623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2b020567-448f-48cf-9f02-74c9cb094b57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.054529s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.075305s] ... 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-c705c748-177b-433e-8d63-68b17b43ddf8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress [0.054202s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_post_admin [0.069247s] ... 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-92b172e0-be58-4bc1-8f23-920edbbd8f14
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.091798s] ... 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-25cdf860-f230-4490-af87-2ed29489c344
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:31.941463+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.037855s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.073541s] ... 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-6e5be49a-7284-49fb-a464-a7e8641dca99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.031732s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_member [0.071032s] ... 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-54c4fde8-2b5e-491a-93c5-1c046c92a6e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.080556s] ... 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, '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-2705b6ca-5e03-4a0c-b882-0323793d2171
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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, "links": [{"href": "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-038d5d54-1d7a-4f41-ad20-b415aa7b3a2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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, "links": [{"href": "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.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.070848s] ... 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-282b855d-776b-48e8-a584-dc8608788751
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.051118s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer [0.076032s] ... 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-93b468ec-acb1-409a-8a9c-020e9de320ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.082942s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-6e4c192e-9199-4616-a2c6-1a60c754c8db
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.081176s] ... 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-ff158f80-d799-4f59-a06f-e3ec44efa2d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_volume_connector_id_get_admin [0.068408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-49a3fac2-fa60-4f8d-9d5c-94f399bba3eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.072552s] ... 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-034081e1-af88-4446-ae05-fea3d37e07ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member [0.071563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-434e1712-864c-4be7-aeee-249b6514f840
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.139139s] ... 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, '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-a8679dc2-4ff8-4d56-897f-0c4e53cf8ee5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:32.276587+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, "links": [{"href": "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-2a35725d-9876-4c26-8f9f-797045bb35a9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:32.276587+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.207730s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.076058s] ... 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-f4b82c0e-80ad-412b-b149-622fe98bdf8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_observer [0.061601s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6defd2e9-841f-4935-b3a5-d2da7aef3c2b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.062183s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_patch_admin [0.065064s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-15667fb5-7f21-48d1-b7b3-37edd07b8b88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.074281s] ... 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-5d62e3e2-d059-4ec2-9ae8-90c7a41fa52b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.047821s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.125953s] ... 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, '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-8a8fbef6-12f3-4203-a1a5-145d38bd1e39
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:32.391631+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, "links": [{"href": "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-8e9c6aed-5559-4fc9-9315-1863157483a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:32.391631+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.048521s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_member [0.079261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-b6128519-aa7c-4086-b082-e32ec9fcd059
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.107748s] ... 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-17bb2e0d-0f2a-44d7-a136-2262099d731d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.049038s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_observer [0.068457s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-315089b6-2775-4c76-9119-f9e356851fb7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.118206s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-958382db-b4e9-4948-a812-537bc4d9263e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.049839s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.072203s] ... 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-61321692-d886-4145-9e9e-720f2b286bde
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_delete_admin [0.074802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1d924bf2-cf52-4fe8-b270-5f59b2449b7e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.086834s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/ports/92d8a42d-ea26-403a-aca5-b5a3a04d8cc3
Openstack-Request-Id: req-9fd8da36-e188-4a10-a19e-2f69ad458706
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "92d8a42d-ea26-403a-aca5-b5a3a04d8cc3", "created_at": "2025-03-28T10:18:32.628207+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, "links": [{"href": "http://localhost/v1/ports/92d8a42d-ea26-403a-aca5-b5a3a04d8cc3", "rel": "self"}, {"href": "http://localhost/ports/92d8a42d-ea26-403a-aca5-b5a3a04d8cc3", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
GET /v1/ports/92d8a42d-ea26-403a-aca5-b5a3a04d8cc3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d16aa59-81a4-428c-aa9a-35da78e7de38
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "92d8a42d-ea26-403a-aca5-b5a3a04d8cc3", "created_at": "2025-03-28T10:18:32.628207+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, "links": [{"href": "http://localhost/v1/ports/92d8a42d-ea26-403a-aca5-b5a3a04d8cc3", "rel": "self"}, {"href": "http://localhost/ports/92d8a42d-ea26-403a-aca5-b5a3a04d8cc3", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.073993s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.074433s] ... 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-78fa7e2c-9af0-461c-a3a8-7b523d0d0788
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.046327s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_member [0.077473s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5741de1f-9979-454e-82a8-d42c7e64576a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.070590s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-cd979695-5226-4610-b6ab-3b0b498d8744
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.032774s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin [0.072757s] ... 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-31dbb256-d6fa-418a-adf4-ae623f08b5a8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.037833s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_observer [0.071829s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1bf3da2b-a5dd-4013-baff-a6dbd238b749
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.068547s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5a254839-3793-43bc-861d-bbd7c2b6d6fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.039355s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member [0.074107s] ... 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-184865c7-5876-43b7-a326-26bf114f3cf5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_targets_get_admin [0.061309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-afd95904-1f08-4041-b18a-14e428af5a7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.048446s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer [0.071663s] ... 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-ef25d311-7791-4880-818a-0db32883c622
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.037963s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.105703s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1a90620f-3bbd-4849-81ea-9238d19d8104
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_member [0.076361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-593d3ac3-3d26-422b-b391-6d77b717840b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.041293s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.073394s] ... 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-244bd185-19d3-4d46-b766-534fcf52da93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.039905s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_observer [0.058933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9aca88bc-8014-40e2-bf08-89bfb421504c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.088754s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ca232ff9-7c61-4782-96bd-73d497c96fc1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.031128s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member [0.072597s] ... 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-c4e82e92-19fd-4b1a-87bf-310da33a9fa2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_post_admin [0.063378s] ... 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-8064abe5-992d-4b39-b9ad-1cbd1cd0a3e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.040062s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.073802s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-36d1d2a7-7a2f-4527-a694-eada3fe39544
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.039340s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_member [0.063857s] ... 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-0d3e5d37-1bf4-48a5-b71e-3094ed719c64
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.075176s] ... 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-949d67ca-bc84-436c-a6cd-f44fce35c98d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.075210s] ... 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, '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-7771cec0-07d1-42b0-9d3b-577352c9b96f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:33.140968+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.075283s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_observer [0.065700s] ... 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-135b61a7-1003-4435-8f30-aae238c2f79a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.053167s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d6972496-94e0-4b48-b4a5-da55a54d85a1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScoped.test_rbac_legacy_190_volume_volume_target_id_get_admin [0.060995s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-355c9dc9-29f9-464c-a55f-79bb59b125fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.071344s] ... 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, '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-9fc50bb4-ac25-4319-af27-e2e43087b859
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:33.262778+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.116391s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.176839s] ... 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-83c9ff33-87d1-4bad-bc86-5bdac9dcc0bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_member [0.066705s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3a73cb67-cb34-4582-9c10-a0414c8cb336
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.064050s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.085332s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-98a8c2a8-c021-4212-a70e-af86b0c322dc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.071613s] ... 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-3f02efc2-b6b2-4ae6-8f40-bf19b8c9821f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.041075s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.040639s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.069107s] ... 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-e1bd1dd2-ea04-45c5-ba62-0d8f4f7acb28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.101148s] ... 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-6501222e-65c8-47f0-beb8-9a9592e5e212
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:33.455835+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.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.041191s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.044299s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0493d6b6-9801-4108-a788-8ada89404da5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.086669s] ... 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-a49f0ee0-0743-4734-95df-e19ac6926180
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.045606s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d1cef64c-6fbc-4624-a8ca-853cbe4c36d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv6 [0.085488s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.065641s] ... 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-863d7355-0898-422f-8858-3c69363e7f55
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPost.test_create_port_node_uuid_not_found [0.060428s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5c59e729-f668-4e0c-b447-adb3809bd8fc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.089693s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.070653s] ... 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-a7357da3-bebc-4d38-a9f3-b89a4f3e4865
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_observer [0.356748s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fef29d3e-3c0d-41b7-a976-2eae7384b74b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.066671s] ... 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} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781
Openstack-Request-Id: req-6b8ab7b7-dbaa-4785-afb9-ef9601832c9b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:33.676019+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios [0.044468s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.024038s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.022230s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.021920s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_patch_admin [0.096710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-35e3127b-e9e4-426a-af53-37f37c7fbf60
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.120294s] ... 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-e55de5cf-f8cc-4e38-8cd3-650bf6439334
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.021357s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.021447s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.022493s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.148529s] ... 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, '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-4d1f195c-74f4-4ce5-926e-3e82d092556a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:33.820581+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, "links": [{"href": "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.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_member [0.090612s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-bd8a66f6-953e-4dbd-b14f-25302dec2767
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.049761s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.072674s] ... 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, '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-39fec669-2bf0-4668-8a76-2d28fc055008
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:33.897005+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, "links": [{"href": "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.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member [0.140051s] ... 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-66d9f3cc-be28-49b1-b26a-82ac0c4c950f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config [0.060281s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_observer [0.080487s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-fedea2a2-269b-4015-8072-3278fcf5ea65
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.064962s] ... 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} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781
Openstack-Request-Id: req-95d0a036-6c2a-4307-b3a2-1dc72f118efb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:33.965102+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.060016s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer [0.106178s] ... 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-db977c3c-7a5f-43ac-a98e-070aec3aa8bd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_delete_admin [0.083771s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e201f117-1920-4c9c-a7d7-bf81b3f2566f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.029336s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.097238s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-1d4d49c2-6738-4ecf-8145-d4cb263d4701
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.032257s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.066238s] ... 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-7d01a526-4aba-43f1-87ab-676b97c0f361
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.029823s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.025591s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_member [0.111327s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-12177efb-efbf-4d5e-827d-0621f52ce534
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.027491s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.089724s] ... 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, '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-671d6b1f-1738-461f-97f1-50818c91f9d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.151901+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, "links": [{"href": "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.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.065686s] ... 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-465e6a53-281c-4926-9949-7a1246741ee9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.029051s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.025570s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_observer [0.070319s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-165a72c3-71f1-4ae7-b905-f5aef7e88c49
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.070884s] ... 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, '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-6e551e41-8297-45c1-bd04-9cc22ce9499b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.224059+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, "links": [{"href": "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.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.086853s] ... 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-841b3b18-e795-4b07-b7d9-e60512008388
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.047435s] ... ok
{2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.020481s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.056828s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '6823f3ac-603b-4eaf-b4fb-c18cf51f29f7', '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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-642b8e79-db6b-446e-8b91-bf11e35093c9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6823f3ac-603b-4eaf-b4fb-c18cf51f29f7 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_nodes_volume_get_admin [0.069384s] ... 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-aeac1801-a1d1-4d1d-873b-a6a971db786b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.023717s] ... ok
{2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.019708s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.052441s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f45232c9-1072-463a-b0de-25c2236de3a3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.021608s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_member [0.069299s] ... 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-d6a0ef4a-b054-419a-961b-0d8b260ce656
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.021699s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin [0.123037s] ... 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-2b9994fa-2113-4ed2-8e81-2428bef380bd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.022354s] ... ok
{2} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.021804s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.087368s] ... 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, 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-96a34d9a-fe40-481f-9080-3ae8026a4fce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.024367s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member [0.077247s] ... 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-f92606cf-1da9-473c-b943-cfddbd7ed5bc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer [0.092125s] ... 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-63318579-0e0c-42c7-b524-5166cfe03f4b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.033007s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.053549s] ... 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, 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-ff818d5d-5d7d-4b44-85e3-d1f900462481
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.021728s] ... ok
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.022774s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.047740s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-28084902-dbd3-42af-bc33-fe2a057cd47c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_put_admin [0.086429s] ... 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-abcba080-70df-449f-bb15-4e4db4e9736a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.027530s] ... ok
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.022321s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_connectors_get_admin [0.137559s] ... 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-f1c1046c-7158-4396-9bbb-943fd23cd8cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled [0.033461s] ... ok
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.022041s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_member [0.093432s] ... 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-32973320-c0aa-49e5-816d-90af820d2852
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPost.test_create_port_valid_extra [0.104577s] ... 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, '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-0d6233b9-0c96-4dcf-8cb7-3a80bbbb7121
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.598364+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, "links": [{"href": "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-38666a43-d139-4ce4-a031-0d10487744b9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.598364+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.022241s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_member [0.074551s] ... 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-dd6b74f0-2df0-4fa2-93e5-736560b8838c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.057477s] ... 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} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781
Openstack-Request-Id: req-44a2b914-fbb1-4850-90c2-3f677dfdd1dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.690047+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.049135s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer [0.079391s] ... 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-7b0e9835-ab9e-4a69-bba8-e9c4f4a48696
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_observer [0.064281s] ... 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-7cbb3c14-3ef8-4f85-ab71-2f1bee57405f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.044852s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.064335s] ... 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, '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-6340acf7-c2a6-4e37-9ccf-3d617f3404ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.752804+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.034600s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin [0.074112s] ... 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-3d57b909-c5fc-4144-aba7-ed69882cb4ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_targets_get_admin [0.061400s] ... 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-79bf5a9e-351c-4146-b022-52d99e93d368
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPost.test_create_port_vif_pxe_noportgroup [0.058466s] ... 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} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781
Openstack-Request-Id: req-29e08c3e-5448-4eb1-a5cd-ec654163532f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.813596+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.051504s] ... ok
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.019886s] ... ok
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.019028s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_member [0.078018s] ... 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-47128ee8-b06f-454d-935a-46c014f26239
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.057896s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-2ca93131-63bd-4176-a8bc-325905d6353f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member [0.114087s] ... 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-b26ae91f-64e8-405b-94d4-a737ed0d760b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_observer [0.065067s] ... 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-4295ab30-e051-4923-9c05-090a1c98bbb8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.104067s] ... 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, '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-0f30e378-afa5-4fef-9551-ee4f5f428fda
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:34.975656+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, "links": [{"href": "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.TestRBACScoped.test_rbac_legacy_208_drivers_get_admin [0.061944s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-58615500-c1e8-4d2e-bc69-9b4c0617d487
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer [0.154700s] ... 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-00b5480f-5366-4472-a29a-81266274e625
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.203885s] ... ok
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.018072s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_member [0.101048s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6ee37b57-0b32-47ab-9735-7d3490c85850
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.017759s] ... ok
{2} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state [0.091732s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_get_admin [0.137137s] ... 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-9bf7aab6-a56f-42a6-888f-15c557d114fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_observer [0.104737s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-d45c24fa-ebb4-42c2-a08d-39a312b8f7b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.284064s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-919727b9-0deb-49a1-a1a6-4ff67d723f91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_driver_name_get_admin [0.067695s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2d4b7e4b-6426-4aff-bd76-9413ec7979d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance [0.098157s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.045143s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ad0f8000-1543-4477-99b9-d20dabb04a0c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_member [0.056455s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-bae06677-81ef-48dc-96cb-8714fe823dcf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.068032s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_member [0.166579s] ... 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-2cb8a5b0-b617-4442-ae1d-0d64b784dbbf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_port.TestPost.test_create_port_with_is_smartnic [0.083810s] ... 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, '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-75b370ce-808f-4788-801a-57e4932dd6bc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:35.385188+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, "links": [{"href": "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.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer [0.072803s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-77d26566-93fd-43ed-bfc1-15005f59dbfd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.079534s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.078473s] ... 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, '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-10eb5528-d225-4bf3-8dfb-3207252edc47
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:35.465368+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, "links": [{"href": "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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.059475s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_properties_get_admin [0.129802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2aae5b8f-78a0-4a92-8d43-df9d6851b3b9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.067595s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-39ec6357-9a3e-4bb3-8aa2-91da93d635ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.059972s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.071798s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-07a29850-83a5-4b5c-a5bc-8c9feb85683c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_member [0.086704s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-80178719-ee85-4cff-b167-f347fee29079
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.061104s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-1a5ff661-d785-4e8c-b4c4-701db6835791
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_observer [0.065125s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8a2ecbc2-e93d-46df-99f2-5622cd803fb7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.162839s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_observer [0.370882s] ... 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-eb758c96-3507-4f71-ad74-4e2f2553b8c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.060112s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-295d43b9-d20c-45dc-b947-7814505315d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin [0.064248s] ... 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-aef19593-19ed-42af-8caf-0b1e794e07a4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.063445s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_post_admin [0.078095s] ... 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-26450459-f54e-4c90-82e8-b6846e58ce0b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.073142s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc [0.140784s] ... 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, '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-a49609fb-c8b7-4586-ba00-fb8b344a4021
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:35.858220+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, "links": [{"href": "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.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member [0.067527s] ... 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-f48d25bb-9f52-4afa-811c-61b1922fc6dc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member [0.143604s] ... 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-6cdb0a3f-5c5b-4e1a-9048-8cda65407809
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.078516s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer [0.064009s] ... 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-9a9c2d75-bdce-41a7-a175-d58bc30bc8fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_observer [0.086419s] ... 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-1d1cebb9-6480-4911-868a-f9df073868ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.054100s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.122053s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-9c6c212c-ecb6-4c91-947d-f62211be1128
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin [0.064225s] ... 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-5f291a9a-961b-4c91-b706-12e5be075a8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.060552s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member [0.061258s] ... 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-6c627339-7b44-4a1b-bf24-59a57b185c48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_put_admin [0.133915s] ... 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-95404cda-a81b-45a9-abd5-3985c2f95c9c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.059332s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.134039s] ... 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, '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-f1b47366-cf9b-4c2e-9b3c-b1b8bfe85e80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:36.119792+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, "links": [{"href": "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.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_member [0.063864s] ... 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-e80d0d1f-8e6d-4fd3-b336-36dc441268b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer [0.085087s] ... 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-f35ac547-ced6-4d77-8877-97ae89d310ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.053566s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-af5e95e5-9827-4a8b-ba76-fd1cd5f1c266
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.118028s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer [0.068065s] ... 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-3ebca5b3-2ea2-4477-83f5-c3eaa57c8df8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.055592s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-c5f42f80-a98a-4196-8340-0ba6a2fdad5e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_get_admin [0.085903s] ... 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-e756f838-6c59-4c84-b742-0d77d6128d43
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.044283s] ... 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} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-3070e27f-20bc-4fd8-aeb8-482b9a86deec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.065935s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_member [0.069225s] ... 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-441fecc5-0be0-4ac3-8124-e9e22f9f5c31
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.074567s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin [0.143928s] ... 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-23f63f0a-590a-4251-bdfb-123cb8a73a2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_observer [0.069091s] ... 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-f771e6b6-7157-4e64-be73-7dd8d2686358
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.056403s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.149681s] ... 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, '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-003725e8-6d9f-41dd-82cd-34b48e5d8a5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:36.411070+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, "links": [{"href": "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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.055998s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.052286s] ... 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a39214ee-87fe-4db2-b473-d707e792c413
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_post_admin [0.104794s] ... 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-39bd861c-182f-4950-9b33-7895b9e90e50
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.040488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/52:54:00:cf:2d:31 GOT Response: 400 Bad Request
Content-Type: application/json
{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.062841s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member [0.160624s] ... 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-97816926-6ea4-436d-aca7-c29343cc7124
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_portgroup.TestDelete.test_delete_portgroup_byid [0.042927s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content
Openstack-Request-Id: req-9aae6d27-844b-4677-9350-03417006189b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.057118s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.067709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content
Openstack-Request-Id: req-30929a6a-c1b8-41ce-9df1-d7e41f195e60
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_member [0.133503s] ... 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-a2c26525-ec8c-4058-9ccf-2af1b60066f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.061754s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer [0.123672s] ... 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-6c825a52-ee09-4083-8d23-c359d580d6fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.061659s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b9bd158d-c542-42f3-adc7-f235e3e11c50
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.058730s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_observer [0.080180s] ... 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-e248e92c-ffbd-4322-a1f7-71d6bbdcdfce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin [0.085881s] ... 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-70b795d3-4094-45f2-b1aa-66b0ac711a8c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"traits": ["trait1"]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin [0.061144s] ... 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-596dcc23-9134-44c1-9903-183e33fc9ab0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.090460s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content
Openstack-Request-Id: req-4cf574be-ad19-46dd-8464-221e8d2a02d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member [0.084835s] ... 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-aca6a55b-61af-4466-8d36-6d93f08706f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_member [0.066656s] ... 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-ad304899-d174-4e03-a6e8-16ee7b256b96
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.131632s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.078165s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_observer [0.080006s] ... 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-a5667e37-6e04-45fc-a3c9-916d668e8d8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"traits": ["trait1"]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_observer [0.104421s] ... 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-14d03342-9650-4602-bcc2-3c6e00673da3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.107297s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.108833s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-01800be2-e2b7-414a-9236-12ef204dee46
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_put_admin [0.102196s] ... 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-3581b1d8-2ebd-4669-80c2-7ae5fca4d97d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.100384s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status [0.080420s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': '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-a0eaf9e7-13d6-4bec-bd09-d30ef3801681
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member [0.088171s] ... 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-683fe8ee-c8f3-4af9-8545-27b49b1bb4a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.074949s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url2'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-92d0faea-88f1-4da4-8a45-45e5f63a548b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_nodes_bios_get_admin [0.066839s] ... 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-57267d07-9296-4681-b822-efe0c9b750fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer [0.083474s] ... 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-66895c07-bdae-4ed0-899b-4871e6fd015d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.127677s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.052226s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/8ff5733e-c257-4939-90c6-26a6568ca057 WITH {'callback_url': 'url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a3918a9f-0c9f-4888-92fe-b51aeedd3754
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8ff5733e-c257-4939-90c6-26a6568ca057 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.041532s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'x'} GOT Response: 202 Accepted
Openstack-Request-Id: req-cad7e854-f5e0-4db1-998f-0aea544b680f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_member [0.099592s] ... 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-a9493511-f3d8-4356-9d4b-0fa5e6bc2ed3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_delete_admin [0.077381s] ... 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-d523e6c3-c8cb-496d-aa09-cd4b470da0e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.046847s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'meow', 'agent_status': 'start', 'agent_status_message': 'woof', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted
Openstack-Request-Id: req-838d8949-3ee8-494f-855c-56708a785ae5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token [0.043114s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'abcdef1'} GOT Response: 202 Accepted
Openstack-Request-Id: req-d4fad4cc-8441-4388-bb89-6313696dc803
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_member [0.075668s] ... 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-0d6e55ca-874e-41d2-8e7b-9fc69bb3de1f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.150952s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.033845s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted
Openstack-Request-Id: req-23d9020f-c91a-4c75-81c2-c309de979722
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_observer [0.132608s] ... 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-3735c27e-2445-44e3-8c88-f34ed673b82b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.038177s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_version': '1.4.1', 'agent_token': 'meow'} GOT Response: 202 Accepted
Openstack-Request-Id: req-47e09c23-6db8-4d68-bb0b-c6b8d9358716
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.033984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/test.1 WITH {'callback_url': 'url', 'agent_token': 'token'} GOT Response: 202 Accepted
Openstack-Request-Id: req-2d981674-5705-4c1b-9cd6-3f6fa7c90180
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin [0.067334s] ... 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-31d59854-6cad-43bb-9c05-250be7c3521f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer [0.129176s] ... 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-2697af4d-f659-418b-8dde-d10fd4b45920
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.058321s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json WITH {'callback_url': 'url', 'agent_token': 'maybe some magic'} GOT Response: 202 Accepted
Openstack-Request-Id: req-fce589d8-e268-4d17-856b-2d90649c4a8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.172890s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin [0.074754s] ... 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-98012c47-4b31-4757-b726-f16df934eccd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.061884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8d267530-00ab-4fd3-bfcb-d229caea4b56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.033102s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_version': '1.4.1'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8809c055-9ee8-49fc-8631-7730c69c1a94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.091233s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_member [0.075138s] ... 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-eb6f7092-901f-4d1f-a7e7-7e0eb5cb3e88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.031815s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': '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-88ff884d-75f9-4cd6-879f-b86bb626e9ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.027485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/18cb86e8-193a-44c7-a146-ffddb6866905 WITH {'callback_url': 'url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e93400d1-64cb-4e22-88bb-3b2df5d3ac55
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.056744s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer [0.078582s] ... 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-3c89cd90-c047-4feb-9869-2bedc4c83d48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.040251s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': '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-7aa2b1f2-1aa3-4efe-a91a-03d0026d61cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.065183s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.039560s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url2'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3b2e25e6-e75e-4ce9-9ea7-1949d96125f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin [0.079915s] ... 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-52e8ff91-b547-4ed2-a216-db9c8e0a2a84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.039524s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/154d0c60-d088-4e05-865d-cc4e70b5894a WITH {'callback_url': 'url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7b347dc2-3aff-4b79-bde2-0d3305ffc7b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 154d0c60-d088-4e05-865d-cc4e70b5894a could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_member [0.333716s] ... 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-183511e6-9bb3-43f7-beb1-ae1b333a948a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.055945s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.045783s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'x'} GOT Response: 202 Accepted
Openstack-Request-Id: req-caf22a6b-c2a1-4a08-aeab-f33002b53f78
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_member [0.070036s] ... 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-1bc62793-ef0d-4bc3-94df-76c4306153c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.040998s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'meow', 'agent_status': 'start', 'agent_status_message': 'woof', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted
Openstack-Request-Id: req-40c025f6-1bc7-4072-9366-b74d6d8efcdb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer [0.099269s] ... 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-c017b8ed-636a-4bd7-9fd5-501e7f5da831
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.040168s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'abcdef1'} GOT Response: 202 Accepted
Openstack-Request-Id: req-4e2ee542-c665-4d12-b329-49f56744e938
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_observer [0.070486s] ... 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-592c9e62-a02f-4b27-be95-57f41578fcc4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.039069s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcdef1'} GOT Response: 202 Accepted
Openstack-Request-Id: req-a464d966-920f-46f0-a1de-de149bbd2818
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_conductors_get_admin [0.068934s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d4f3dd20-2210-4bd6-815e-1a65b5ef92b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_vifs_get_admin [0.069234s] ... 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-88237f68-3a5f-4ef0-9878-706cef99de56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.059093s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_version': '1.4.1', 'agent_token': 'meow'} GOT Response: 202 Accepted
Openstack-Request-Id: req-b6c4a3db-dc60-40fc-93d7-3cb6dbca9caf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_member [0.059539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8a848984-f53e-43c2-9e18-6871e27b5e0f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_member [0.068548s] ... 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-f02a92dc-f278-4c06-9ca9-276554ab00e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_observer [0.058322s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e0f12a19-b7e6-4dd1-8371-9b44d292ae85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.075301s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/test.1 WITH {'callback_url': 'url', 'agent_token': 'token'} GOT Response: 202 Accepted
Openstack-Request-Id: req-f4292221-4e36-4043-ac3d-6ce898afa859
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.333910s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_observer [0.072028s] ... 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-2eb10b77-422f-41bf-b32f-6d129553641d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_hostname_get_admin [0.060382s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3f22c3ca-a0be-4450-9013-0550c778f17d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.065177s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json WITH {'callback_url': 'url', 'agent_token': 'maybe some magic'} GOT Response: 202 Accepted
Openstack-Request-Id: req-933219e4-d111-4e2e-a1e8-e3d27f0629c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_member [0.060604s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-43f77298-6339-478d-aaf0-fd0a30e9f7e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_post_admin [0.073318s] ... 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-84fef856-54f7-4b58-9cdc-2a48a7bc41f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.088583s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.077954s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_token': 'meow', 'agent_verify_ca': 'abcd'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3eb5880a-4245-4bd4-a82a-8cdf7cff4a00
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer [0.060726s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9960d9e8-4cca-4673-87ba-4cac999cf4d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member [0.074958s] ... 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-858b44c1-e532-4f50-af2a-27ad9ff5cf56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.053081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': 'url', 'agent_version': '1.4.1'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6deb5de7-9615-47d3-b489-9d1a62c95387
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin [0.071208s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fa10ecf0-a342-48d7-83a3-960473cfe7b8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.038480s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {'callback_url': '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-65ca4890-7f74-4098-8e90-dc4676fbadc6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.71
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.111611s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_observer [0.079341s] ... 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-8ab8f433-4026-4459-ad20-7f785dde195c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.050281s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/b7ea6731-163a-47e5-9c35-0a5f73bf0f93 WITH {'callback_url': 'url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e8c0ced9-ffa5-4fff-8a18-5937b065f464
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward.
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.060838s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin [0.085722s] ... 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-5ae2f7b0-8bad-411c-8451-a91599098c7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.060534s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_observer [0.071014s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f745f823-70f7-4fb4-b2a7-8c449cc85034
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.086319s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=63d08136-b21d-478b-928b-f330f7098af5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ebe00304-3f2c-429d-a203-b77bec451a08
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "63d08136-b21d-478b-928b-f330f7098af5", "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/63d08136-b21d-478b-928b-f330f7098af5", "rel": "self"}, {"href": "http://localhost/nodes/63d08136-b21d-478b-928b-f330f7098af5", "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_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=63d08136-b21d-478b-928b-f330f7098af5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f358b94c-b82e-4660-a168-6a71fa6acee3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "63d08136-b21d-478b-928b-f330f7098af5", "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/63d08136-b21d-478b-928b-f330f7098af5", "rel": "self"}, {"href": "http://localhost/nodes/63d08136-b21d-478b-928b-f330f7098af5", "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_token": "******", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=63d08136-b21d-478b-928b-f330f7098af5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ec6a7f65-45c9-48e3-9016-8264ae5df44e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "63d08136-b21d-478b-928b-f330f7098af5", "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/63d08136-b21d-478b-928b-f330f7098af5", "rel": "self"}, {"href": "http://localhost/nodes/63d08136-b21d-478b-928b-f330f7098af5", "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_token": "******", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_get_admin [0.060204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5b8e338e-005c-4bda-bdb1-cb681c934e0c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member [0.080627s] ... 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-34eace82-143d-474f-8fb1-486dcbbe97a6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.074176s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.061805s] ... 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-b2c71438-35f1-44ce-9e5d-60114dd23aab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "9dfbe4ab-32b5-4138-92e0-4e74df932f2e", "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/9dfbe4ab-32b5-4138-92e0-4e74df932f2e", "rel": "self"}, {"href": "http://localhost/nodes/9dfbe4ab-32b5-4138-92e0-4e74df932f2e", "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_token": "some-value", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member [0.064629s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-df202994-765e-4aa1-955e-212ea12e568d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.059041s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer [0.074806s] ... 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-939c7e92-3461-4ad4-8aae-ddc13d0f0215
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.064779s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=1033602e-9d69-4d7a-a808-15e384cf4b05 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ddaa9ee6-901d-4171-8461-b6dd68b40b18
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "1033602e-9d69-4d7a-a808-15e384cf4b05", "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/1033602e-9d69-4d7a-a808-15e384cf4b05", "rel": "self"}, {"href": "http://localhost/nodes/1033602e-9d69-4d7a-a808-15e384cf4b05", "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_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.053901s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer [0.060510s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7a503acb-c019-487f-81d6-168dc5c0df58
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.057714s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_management_indicators_get_admin [0.104130s] ... 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-28fb6301-9c68-4556-9da2-7d8afd95af40
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.084940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=5e0b4f97-f4ac-4085-8fc3-beb1e3ee107e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-31a9f583-6525-449d-b7b2-45a33e9ead36
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "5e0b4f97-f4ac-4085-8fc3-beb1e3ee107e", "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/5e0b4f97-f4ac-4085-8fc3-beb1e3ee107e", "rel": "self"}, {"href": "http://localhost/nodes/5e0b4f97-f4ac-4085-8fc3-beb1e3ee107e", "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_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin [0.069331s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ab29c799-eefe-4d31-b364-4d1e5f92add3 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fb1b1216-02c1-4d6b-a987-4b0b8b87736f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ab29c799-eefe-4d31-b364-4d1e5f92add3 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.058430s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.060171s] ... 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-1bab31b5-86ed-42e7-9a49-843d8c93a434
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "80931486-1c96-4d0f-8270-88ee2e706b16", "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/80931486-1c96-4d0f-8270-88ee2e706b16", "rel": "self"}, {"href": "http://localhost/nodes/80931486-1c96-4d0f-8270-88ee2e706b16", "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_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_member [0.065880s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/4289abbc-ecca-4a8d-a605-e63777ca9d64 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5032baee-7411-4353-aa3d-2c6e2e512e2f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 4289abbc-ecca-4a8d-a605-e63777ca9d64 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_member [0.091479s] ... 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-7a01152a-31ac-4eda-886c-2e2ec9408f37
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.044740s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=0b01009c-d02d-44d8-8b2f-58b82d017171 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb60e390-a6dd-4456-b683-73aa3c780aa0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"node": {"uuid": "0b01009c-d02d-44d8-8b2f-58b82d017171", "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/0b01009c-d02d-44d8-8b2f-58b82d017171", "rel": "self"}, {"href": "http://localhost/nodes/0b01009c-d02d-44d8-8b2f-58b82d017171", "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_token": "234567890", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_observer [0.060834s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/61b2b98e-37a0-42c3-9f31-4902dae7cefe WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8efc7ad2-f764-40a2-a5b5-f7c9e9a8ddc3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 61b2b98e-37a0-42c3-9f31-4902dae7cefe could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.035094s] ... 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-f683d6e5-246f-4007-83c5-ced4b6c23d8e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.120984s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.031601s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a177f925-d9b8-411a-9a89-eb2c3bb564a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_observer [0.119834s] ... 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-4ed1fc80-5530-4c51-bde4-a40727d0d598
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_patch_admin [0.076013s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/9805607c-50c6-4669-b461-25c2b5810e33 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f84ce979-4e87-4189-aa68-ab53a6ad70f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9805607c-50c6-4669-b461-25c2b5810e33 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.169549s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member [0.131115s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/1a3484dc-ba1c-4d3a-b376-12f98cf9d2bb WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-21d6f68b-f5ba-4fb7-bee0-493917f30d40
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 1a3484dc-ba1c-4d3a-b376-12f98cf9d2bb could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_110_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail [0.055552s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_observer [0.063066s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/07d94791-6f8a-4a5a-9fc0-e02ed7d52913 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-43885289-3bcc-494f-8df6-712e9991d242
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 07d94791-6f8a-4a5a-9fc0-e02ed7d52913 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean [0.040445s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin [0.057802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/728764b7-252d-4e0b-86a7-738ef7d8b478 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1195874c-0c35-4323-921b-93cdb50ce591
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 728764b7-252d-4e0b-86a7-738ef7d8b478 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.041479s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.326726s] ... 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-f4eccbb2-5784-4468-860c-7c17b7205f8e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member [0.058333s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/d3303d5d-1332-44a8-9b61-fd640218e867 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-892e69a9-246c-4ba2-912e-dccfba6d265e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation d3303d5d-1332-44a8-9b61-fd640218e867 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.038889s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=10fffca3-36d0-4503-83dc-de6c6f69d011 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-11ef471c-a835-4bc2-8a0a-cc3899429887
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token [0.019986s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.100448s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.020860s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps [0.019288s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_observer [0.089708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/5fb88a19-e69b-4deb-9bf1-fc448ed04294 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-dec7ae29-a2d1-41ee-b289-4f5a9d901ba6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5fb88a19-e69b-4deb-9bf1-fc448ed04294 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.020546s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.018983s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.019716s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.019672s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin [0.065286s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8e36b57a-ac4f-48ce-b794-a89bf056fd77
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_nodes_allocation_get_admin [0.107642s] ... 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-691bf79c-8970-403f-90af-263bff2a9126
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.033919s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.177946s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.029931s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.019763s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member [0.061865s] ... 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-6862bc32-4d45-4f16-8b6a-862f960a3e53
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_member [0.080190s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c7b1a88c-c0b6-4743-ab43-ec759cd98927
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.022533s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.019247s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.019267s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_observer [0.061210s] ... 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-95467407-4fe3-4a3f-a73e-23f7e8c73e76
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.097587s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.021084s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.029568s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_observer [0.112373s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f0de7305-c661-4de5-83eb-c1d63f2d952e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_delete_admin [0.071080s] ... 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-533e3492-d6a4-4064-a48a-b2ba9b8b24b5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs [0.073644s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.031645s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.048183s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member [0.062958s] ... 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-3c141cb1-ed65-4937-9c47-6adbe3f343c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.028412s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_post_admin [0.087418s] ... 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/34b61ccd-4c61-4c15-ae98-c28a83a89311
Openstack-Request-Id: req-a68d0dc9-5ac2-4c52-a95c-bb62dd22cc62
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "34b61ccd-4c61-4c15-ae98-c28a83a89311", "created_at": "2025-03-28T10:18:39.732279+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/34b61ccd-4c61-4c15-ae98-c28a83a89311", "rel": "self"}, {"href": "http://localhost/portgroups/34b61ccd-4c61-4c15-ae98-c28a83a89311", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/34b61ccd-4c61-4c15-ae98-c28a83a89311/ports", "rel": "self"}, {"href": "http://localhost/portgroups/34b61ccd-4c61-4c15-ae98-c28a83a89311/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.036660s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.049472s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_observer [0.064828s] ... 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-d2147366-40ed-43c5-b861-bcbe59c8e566
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.021660s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.020405s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.058440s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.021250s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member [0.099661s] ... 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-3bbdc870-c9b0-4943-9aa2-f888c6a5b3fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.019550s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.019892s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.019374s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_observer [0.068109s] ... 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-88c70b90-dba3-40b4-a852-9649160f39d2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.019753s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin [0.132415s] ... 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-f3d8d2db-0286-4f3c-b7aa-442bbf3a9594
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.021090s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.019664s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin [0.064190s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd14be7d-279c-4a1c-b770-f5569fd784ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:39.944726+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.019435s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.147928s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.018841s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.028485s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_member [0.062286s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bf9679e0-bcf5-4040-9725-22c9268a76ff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member [0.112126s] ... 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-51a4e2a9-2eff-4cb4-b635-ab399296e313
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.034717s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_observer [0.062310s] ... 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-0f934c48-3911-4b34-9e0c-ca7efb1a4db6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.110445s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer [0.073927s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0313d0bb-8bc8-4053-87fa-9874db4452bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:40.080365+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.071130s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.024785s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_get_admin [0.068026s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3acc205f-1b91-42be-995a-4bc2e9e3fa0d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin [0.069063s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-91fedef6-7d77-4d45-aca2-e8dfbe21fbed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:40.145523+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.023917s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.092630s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.018251s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.017882s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_member [0.056594s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-eb905171-b3e1-4968-bf57-aa2c079c9b87
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.019749s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.059112s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older [0.019865s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.024002s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_member [0.116045s] ... 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-b45b64a7-bd33-4a01-a3e3-29dfc0194a7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_observer [0.078231s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2a261647-153a-4b11-be82-3855c67f4261
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.022407s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.061729s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.020140s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.019791s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer [0.070197s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34d91b6d-2b46-4fbd-b456-c677b9a9957e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:40.333783+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.020252s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.065195s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.019240s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.019390s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin [0.127576s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/e6280607-29cf-4bf6-8244-57085b67d831 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b4716059-43dc-4f8b-9366-79944a61b0b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.023126s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.059274s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin [0.083694s] ... 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-86142deb-b0bc-4cf1-b35b-a8c63678e80f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.034397s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member [0.057021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/05d4733a-31cd-4596-9408-311dcc56ea54 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9efd6539-29e4-48a4-b3f9-81695b48e1c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.034114s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member [0.072717s] ... 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-b69fcb0b-9915-4c6d-9863-c12327b5efa6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.029393s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer [0.057966s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/86dac676-1d16-4bdd-9515-16f990a679f0 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3d1b4b58-bec1-4e3c-8a06-49ab9dadfcf2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.020816s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.018661s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer [0.074368s] ... 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-b70025e7-ed0d-4ec0-89d9-5eb890228cac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.019477s] ... ok
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.173171s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.019142s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin [0.086451s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/df76319f-c6ee-4f7e-be37-4e0e1df5ede6 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8164b831-220b-4767-8d48-58e8ae02028e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.020820s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.019007s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.019086s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member [0.062165s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/b99a68f9-c9b9-44c0-a481-6a040004d506 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-93973018-5bf4-4b46-b18a-26a5906d9f19
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.020972s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin [0.106385s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-51c09735-8fe6-4d86-b44b-e15d6efea5af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.019265s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.018821s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.036833s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member [0.104490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1cdb030b-27bc-4656-96e1-8d51c7f4c614
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.046161s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.040011s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.021280s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer [0.084015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3dc60007-bcdc-4db7-a3e2-b44e1d4a34fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.286553s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.022671s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.021554s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.018292s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.017653s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.019413s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.018300s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin [0.118565s] ... 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-7457b219-4c66-4ed0-abad-75899dba521e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.110130s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer [0.320064s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/0c2aaea8-ff2a-4182-b7ee-0ec836a439c1 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6722085a-15cc-4faf-a49e-0cab507c4119
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.020969s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.016939s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.017241s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy [0.018696s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member [0.077027s] ... 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-57e04b8a-944b-4668-8a68-d7379d8aacb9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestCheckListPolicy.test_check_list_policy_forbidden [0.020387s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.103507s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.019129s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin [0.115718s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/09b9f321-c091-486b-94f8-9f97fddfdadd GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d300056f-fc6d-40e6-b291-d90f58100b8a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.019397s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.017242s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_observer [0.083305s] ... 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-62d3c3c8-2d05-41e6-ad48-6585f445e3e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.020492s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member [0.058961s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/ed06de2c-b95f-4455-a6a3-fdc8dc3bab50 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3033f14d-0920-4503-887c-7d07840f7e30
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.029334s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.041286s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer [0.059242s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/8bae34b6-81bf-4009-a0ab-e142eb6c5a93 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-179bbaa4-5167-4d00-bde4-c4705f27da78
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_detail_get_admin [0.080188s] ... 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-f2528fe1-1f85-4e7d-81a3-1705efadb4d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:41.218823+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.176134s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.047789s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_member [0.071115s] ... 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-3b4636d7-7ad8-4639-9f71-0b3657c557d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.030511s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields [0.017533s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links [0.016222s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.016687s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_chassis_post_admin [0.127886s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-7a9f9f01-6249-4d41-9951-8d6b07910398
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.016343s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.028624s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_observer [0.114728s] ... 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-baced7a6-3b5e-4783-b78c-60aa6f9ce1cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:18:41.415289+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.038319s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.037931s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_member [0.132993s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-594c4098-d111-45ce-a4e1-7d19496a0b17
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_136_ports_get_admin [0.076806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-436ed04e-66d3-4e3b-89d4-ff0695ee50fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.045505s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.294924s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.050954s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_member [0.071872s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-448ea7b3-9e59-4993-80cd-132cb586887b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.029596s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_observer [0.133048s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-3d8f041a-8395-4f21-9085-922debd397a6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.048480s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer [0.074788s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6ae2054d-79a2-4a62-a504-0d5b25ba37a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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__do_next_deploy_step_dynamic [0.117539s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.028734s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.018308s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.017793s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_post_admin [0.078863s] ... 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-7bc424bd-1071-4c94-ba11-02ec0d250342
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin [0.122932s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8abe06ab-8b2c-4471-851f-0b2e6d9285fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_member [0.061841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-c1189854-f62c-4d51-a909-ac00cb76db38
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member [0.079853s] ... 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-e753ca74-8946-4f4e-9d9b-3743b0a4e6d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.175808s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_observer [0.064237s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-80d10b9f-8b6a-4836-b34c-bf8dce02aed3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_observer [0.076445s] ... 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-b63f57d6-a24a-42c5-801f-5e0f46dfe2fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_detail_get_admin [0.068019s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-073059b7-13ab-4895-957b-e5b4dc2b65ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.232282s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_detail_get_admin [0.078013s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a665e72c-ab5c-45a7-9b30-00234c09b6dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:41.962113+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.025672s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.018054s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.149414s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.017673s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.019589s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_member [0.090809s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f71d0020-01a3-498a-91c4-c30021f16835
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_member [0.074990s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4d5ef275-9c91-4c0d-98fd-28cff894a863
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.037671s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-40d40e2a-a986-497e-b2e1-2bf5723c6876
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.029204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.098913s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer [0.076333s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-135145cf-d5bc-4e36-b906-05d4cf672fcf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.116642+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.041428s] ... 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-0ec7ba20-7508-4d4c-bcd8-b8a223c40767
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer [0.145175s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-929d243d-f022-4182-b9e2-f09d53980d8c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.043893s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-6b1705c3-7865-41ff-a072-829a84b092e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_port_id_get_admin [0.082444s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a66acd27-f859-42b5-b455-5f301d18a6dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.194962+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, "links": [{"href": "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_last_step_done_with_console [0.140149s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.071283s] ... 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-7f6fc2df-0972-4e61-aea8-eb4353757ba2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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-a98794d0-27c4-4da5-afa8-e7e6eff2c9ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScoped.test_rbac_legacy_291_chassis_chassis_id_get_admin [0.087076s] ... 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-d696cbc8-1c7c-4b18-9d14-c5bdacefb12d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.056797s] ... 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-4154707f-07c5-4e8b-a2ae-06f19317b082
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.332761+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-57652bdc-3065-49a1-a5be-42890986b1d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.332761+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": 123}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_member [0.068348s] ... 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-5c6b07ac-0f11-43bf-ab3a-37c024c77dad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member [0.141076s] ... 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-aab250aa-ed02-4f3c-8f83-a07a8b79da51
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.110899s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.043159s] ... 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-09b6daf2-12b2-46b3-ac52-c3bd3a127b2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.054238s] ... 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/c16eb1a9-c45a-40f6-a386-49c03742beab
Openstack-Request-Id: req-3a0f807d-6a65-4563-b887-b3f083daca86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "c16eb1a9-c45a-40f6-a386-49c03742beab", "created_at": "2025-03-28T10:18:42.427966+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/c16eb1a9-c45a-40f6-a386-49c03742beab", "rel": "self"}, {"href": "http://localhost/volume/targets/c16eb1a9-c45a-40f6-a386-49c03742beab", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/c16eb1a9-c45a-40f6-a386-49c03742beab WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dde60138-ab8e-425c-a519-3edf3f868d54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "c16eb1a9-c45a-40f6-a386-49c03742beab", "created_at": "2025-03-28T10:18:42.427966+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/c16eb1a9-c45a-40f6-a386-49c03742beab", "rel": "self"}, {"href": "http://localhost/volume/targets/c16eb1a9-c45a-40f6-a386-49c03742beab", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.029984s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_observer [0.111556s] ... 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-058f9ccc-46f5-4362-9f0c-474b04cf6621
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.036142s] ... 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-864757eb-3c8c-4448-950a-bcc4d426dfe5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.034304s] ... 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-d983e080-8bc6-4e26-9045-765918788aeb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.176940s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.036390s] ... 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-ac1b634e-37df-4990-bac8-9c5e39da956d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_patch_admin [0.119340s] ... 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-028bf2d1-bc1f-4d6a-8950-f9173a345144
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.037082s] ... 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-3d1c6208-0bdc-48ef-9d3c-7297fe342d19
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.035678s] ... 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-89a68b31-27d6-4eee-af65-c70a677503fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member [0.062486s] ... 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-0ac7a5a3-5ac4-405b-b3dc-b82cfb8ccd2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy [0.102131s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer [0.308859s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-52b3848c-1a68-462b-9893-cbc11c75d035
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.649731+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.058869s] ... 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-0fe444c2-e49e-4a30-a187-946a50169380
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.702988+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-8e499c05-b041-4952-89be-0708bd93f865
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.702988+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.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer [0.069244s] ... 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-f2cd70e0-a617-4e4b-90a4-fe9f8f161d77
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.046185s] ... 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-d19a8e16-5fd0-4c38-9055-deaa0acfddc9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:42.758609+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin [0.095056s] ... 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-e9b3594b-80d2-490c-9398-5c3d49a27f5d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.119395s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_delete_admin [0.140484s] ... 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-47baba89-5c0f-48b1-b080-5baff92fd0cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_member [0.102345s] ... 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-da2f7168-4183-4d48-ba62-a2bf070dad8e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step [0.105999s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.110842s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f80b4e2c-bcb6-4c82-a481-33c998663725
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_member [0.084874s] ... 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-999b1e26-70ad-4361-8fef-531eb2962cf2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.069506s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_observer [0.084195s] ... 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-cc675f4e-6a9a-4411-a817-376d9ec0309e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer [0.070893s] ... 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-56c895db-e881-424b-8c6e-05a7c2f670fc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin [0.069566s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-385dc0ab-b92c-4277-878f-b528abbd572a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_agent_busy [0.102325s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.120957s] ... 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-860b63b3-bd89-47e6-b24c-10992437d6df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member [0.069079s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-50f193d8-d5fe-42d5-9ad6-d6499b93ae9f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.093449s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9e72e0a1-4696-47da-b228-135d35bd941f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin [0.143194s] ... 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-92a2a1a6-67d1-4be4-9f8d-46414aa2cd15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer [0.086938s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-19892626-5342-4518-8aee-7858c554d0ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_bad_step_return_value [0.136341s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_member [0.093009s] ... 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-1eb77eb7-7755-4515-9ed2-ee0ecca5809e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.109116s] ... 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-d0ed5b91-9ba8-49d4-82ca-134fb1e12915
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_nodes_ports_get_admin [0.091721s] ... 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-7ac637ca-83ff-43f3-aad1-83ebc9a23681
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_do_next_deploy_step_execute_exception [0.167373s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_member [0.083766s] ... 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-50594fdc-4e68-444e-8b2a-6996fff8f7e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.095098s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8e844cd6-5fe3-416b-bc60-ac24173db2d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_observer [0.174495s] ... 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-ae6e4f35-5c05-47b6-a331-c4a8706cbc17
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer [0.088235s] ... 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-ae856534-3e53-4577-b2e2-fee77a380d00
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.094665s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fa413551-cb2c-4521-a5c0-4e694d189b66
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.122427s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin [0.085823s] ... 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-43939b5d-bc02-47ff-a2db-32aee745777a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:43.515011+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, "links": [{"href": "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.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin [0.164547s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d05ecd6c-9d99-459d-a1cc-3cd547087472 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1b4f8fa1-26fa-4e2f-9d3b-397a81bb8e59
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member [0.067979s] ... 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-db831692-f1c1-4ae8-907d-4730f0691c35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.153530s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ab85a15b-8bc2-4e8c-b4bd-607e16858b4e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.133515s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.051389s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer [0.084506s] ... 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-fae58e27-9d3a-45bf-8ca7-27b6c9b108cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:43.658564+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, "links": [{"href": "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.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_member [0.109637s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e7eefe58-02ac-47b5-9dd1-b11bfd866bd1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2b3ff3c2-ceb2-4a3c-a237-dc8b7867c73c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.056124s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.145163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6b4c22d0-7482-4aae-8c93-006e24546b1d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin [0.080239s] ... 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-b192ae64-e8e3-4bcb-941b-7d81275f68f0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_observer [0.063721s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/001664a5-7a2f-4b2e-ae34-25b7482e234a WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e26c77c0-afcd-4c1c-8561-76e4959124ba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member [0.075138s] ... 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-34f75205-bc67-4c43-807c-0f670bb87838
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.082737s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9d495717-52e8-49e8-afb0-72494443d275
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.150441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5e4642cc-6e58-43f0-bc28-0287302328ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.215030s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_observer [0.107858s] ... 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-9e04e9cb-9e43-43d1-a437-21e91e501f61
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member [0.088686s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-da437f22-2583-4d79-a177-95b451f3d2d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.094588s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d391480e-165b-4bb3-8209-5f72c7bd28ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.093877s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_detail_get_admin [0.099749s] ... 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-87abcaa0-951b-416e-8bb9-7d1b3e6c1896
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.093294s] ... 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-bf6e25cc-f37e-4056-9e5a-50842a86a290
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.113051s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-12c22fc7-9b59-4c11-a69e-b421762cf5d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member [0.074606s] ... 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-59d5c5cc-8c1c-4f39-ae52-df55accca5ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.059681s] ... 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-9481494b-65be-40f7-952a-3828d9a516b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.090326s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3aea517e-f1b8-4794-8f04-3aff183e533a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer [0.078309s] ... 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-cffabe1f-d5cc-4fc3-9c78-47644578dab4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.061245s] ... 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-898e5389-8afa-43e3-a9a9-5f679a75adf7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.207079s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_volume_get_admin [0.080023s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4167ee3c-32ff-4723-a355-250cab20deaf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.060353s] ... 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-d6277204-7c5f-45cc-a0a1-2d88d37427c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.125778s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-51e5e6ef-2665-482d-81f6-8fe7bf7d6788
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_member [0.069415s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9267e445-28a7-4d28-85e1-0595f74f5d16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.068517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-951d079a-e15c-4e7d-a854-33a021711798
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "abe48b9a-19cf-43a8-b530-4430326b9617", "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.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.095736s] ... 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-18d26a82-b9e8-48e3-8ab3-34a2a3e73807
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.179122s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_observer [0.086716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f55e508e-5aa8-4ce2-bce5-34005ec01066
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.056856s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-195e7f55-4411-450d-a436-74e6383e4a4d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.090699s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b02e6deb-c9b7-463e-964a-f00ccb953f02
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "fdaf3e08-46c8-4fe5-9665-7fe166f75f0f", "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.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.059205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2aa9934a-93ea-4b81-9807-4b03c549c93b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": []}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_connectors_get_admin [0.077593s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-71b47929-65ef-419a-bd34-47f6af99c35e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.110001s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.056344s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8056ad0e-3f78-443b-a6c4-7eeb6334be76
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_member [0.068102s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b77e7062-a15d-49e8-af97-025a8feed5ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.144682s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7fe2553c-b9f5-4690-9b44-c99242e020a3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "13a23179-fb28-4e4e-be14-f8e97812e946", "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.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.058720s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c8a9e14e-f6b1-4144-b29b-904c557ea1b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.100996s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.066902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d0e03851-2c33-45d4-bae7-3fc8dd524ea6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "b8dc6785-9499-4fa8-8065-7ffab63430cf", "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.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.070634s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e886665c-990b-4d6d-9914-847091b1d3b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_observer [0.102866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f4a8e22-8186-404b-aebc-50386523b32e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.113838s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.059396s] ... 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-6101cf84-1993-4e70-8f15-bf0044920d74
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.082114s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a611a99f-4557-4d9d-aef9-294d9431854a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "5c95551f-5bc7-447e-b9e9-4f4602775617", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_post_admin [0.106459s] ... 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/49d42458-c0b1-4e0a-9ac4-62da31c9150c
Openstack-Request-Id: req-f1013ea7-8323-4536-9226-06695e872d63
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "49d42458-c0b1-4e0a-9ac4-62da31c9150c", "created_at": "2025-03-28T10:18:44.813256+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/49d42458-c0b1-4e0a-9ac4-62da31c9150c", "rel": "self"}, {"href": "http://localhost/volume/connectors/49d42458-c0b1-4e0a-9ac4-62da31c9150c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.072995s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c06f08c7-35b9-4654-9385-5e9ae0ae4e5d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "3311bc40-9ea4-4c0d-89bb-36c879b1895c", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.112206s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_member [0.085938s] ... 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-fa7d34bd-ec25-4f59-8bf1-c378dfae9e4e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.068937s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c67df531-a765-4042-ac53-9ef25e63c67f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "6a3f0186-7ba5-4e20-997f-38decc37abdd", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_observer [0.074111s] ... 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-fc73b0ff-a994-4132-9c6e-9920a422b4cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.275512s] ... 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-4a9a45a7-b7de-49c8-acdf-1290c7747f1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_volume_connector_id_get_admin [0.077023s] ... 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-6d5cae2a-6e52-4717-8a48-b0c407163768
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:45.023846+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.132850s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd72e83d-5f8a-4fb2-8290-1d4e48b95d5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "a5649ff5-7bd9-46ff-bfff-21a5d6faf7ac", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.202705s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.080511s] ... 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-1efe3f8d-0319-4b84-aab2-583637f3a109
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.075302s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-29226a10-a7a9-453b-abb8-29c67c82a222
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": []}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_member [0.094933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-976d5a98-4869-4af3-a521-200111ec262a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.073895s] ... 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-06eedad8-3ee1-4067-a41b-2f1402db3647
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.070240s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aecbe236-ad58-42f4-a906-19d95b95fbfc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-03-28T10:18:45.168809+00:00", "updated_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": "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.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.071825s] ... 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-65aa3ade-a03b-44db-978c-ce0cd8844f44
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_observer [0.153208s] ... 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-24e0e639-85d3-4a21-acc6-60950b642003
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:45.241628+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.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.071237s] ... 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-4924a986-b05b-469b-afa7-e8c110c6b205
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.066748s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8789d3db-2fdc-40a5-a354-e2367b662b94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.344861s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.066535s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1c4e3a19-34ed-44fd-9cae-30683bced97a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_patch_admin [0.181953s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-63874ace-917b-407c-9875-0a088b4ab716
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.105695s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.333515s] ... 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-51eac0d2-e9ea-488a-9d11-adb48a8e4ed6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.088648s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-14f7c94c-01ba-49bd-b67e-26fb5cdaeaee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_member [0.092881s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-9d9306c4-d87a-4b5a-a42e-7eee5ea92fbd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.075110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ef5829e8-a145-474f-8558-103f7dee6ddb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-03-28T10:18:45.583538+00:00", "updated_at": "2025-03-28T10:18:45.590744+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": {"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": "08500faf-0a69-497f-84c4-35d4f5b17d48", "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": "08500faf-0a69-497f-84c4-35d4f5b17d48", "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.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.072113s] ... 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-f46f4e9c-5a92-4f06-9669-a2c1c8ff23a8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_observer [0.075165s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-050d9901-2093-4357-a80d-4cb4835a1e91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.167619s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.090690s] ... 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-4e102daf-e0b9-462b-a107-16e49e275cb3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.071423s] ... 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-e36cb332-9c7b-45c4-a0ef-b7d6656100e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_delete_admin [0.075327s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-9d943057-ba5b-47a2-b27e-c63519b917ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.110614s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member [0.067738s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-033f7932-c524-4536-8fd8-dc9246cd8755
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.091810s] ... 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-49921684-1cbc-495d-90a8-080059c11ec9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_third_party_admin_cant_get_node [0.108587s] ... 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-124f29f2-da3a-4467-a3cd-1959a107c74a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.072944s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3262858f-6a2d-4d50-99a5-a7be64d4b9c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-03-28T10:18:45.851555+00:00", "updated_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": "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.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.081276s] ... 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-27d5f87a-f25a-48c1-a34a-b9250c6d2556
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer [0.122651s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4fae8983-70fb-4e28-bee2-0c738b3622b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.166532s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.074948s] ... 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-4c6c217e-6bcb-495d-b713-65dcb83adf66
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.082898s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1e9e5e09-4bec-45d9-867b-0a6c0312c250
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-03-28T10:18:45.940570+00:00", "updated_at": "2025-03-28T10:18:45.948544+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": {"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": "4837ef61-5fb5-4350-b5db-910449c7349a", "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": "4837ef61-5fb5-4350-b5db-910449c7349a", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_targets_get_admin [0.090153s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c8309fe6-f553-4110-b131-1738979324ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.099505s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.096620s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d071230-6e15-47d1-81ad-85d31dd6d688
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-03-28T10:18:46.035048+00:00", "updated_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": "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-03-28T10:18:46.045770+00:00", "updated_at": "2025-03-28T10:18:46.053239+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, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar", "traits": []}, "instance_uuid": "c6539b58-1386-4b54-9fb0-abf9a5a23925", "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-7d87
    39cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "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": "c6539b58-1386-4b54-9fb0-abf9a5a23925", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_member [0.061926s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f11129de-b535-4946-884f-778b953fc90c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.147201s] ... 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-b90fc50a-f0b7-4de4-ab71-93f1c4db6dd2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.077805s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bcc253e8-175f-465b-a679-a06b4a75da84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-03-28T10:18:46.126378+00:00", "updated_at": "2025-03-28T10:18:46.135579+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": {"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": "27ad740d-d6b6-478c-923e-bddad595a578", "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": "27ad740d-d6b6-478c-923e-bddad595a578", "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.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.099980s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.079239s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-15b46d23-83b8-4d7c-b4a8-aa0ef45d00a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.120503s] ... 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-85e842da-246e-4e0d-992b-9605ffd71d1d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.074545s] ... 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-7a2a025b-3a84-423e-855a-42900cae5b54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy [0.182874s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_observer [0.284543s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-10a1968b-538f-42c4-81a0-a873e224f957
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.080803s] ... 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-a77ebe4f-e7ae-46ff-9275-f20b8e127b66
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee [0.095795s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_post_admin [0.077960s] ... 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/44bf891a-61e0-4ad9-ba47-af3bdf1400a0
Openstack-Request-Id: req-586a4e1f-10ad-4fa7-bee8-08c3686063a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "44bf891a-61e0-4ad9-ba47-af3bdf1400a0", "created_at": "2025-03-28T10:18:46.447212+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/44bf891a-61e0-4ad9-ba47-af3bdf1400a0", "rel": "self"}, {"href": "http://localhost/volume/targets/44bf891a-61e0-4ad9-ba47-af3bdf1400a0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_admin_can_patch_node_extra [0.230842s] ... 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-12e946d1-85d9-4225-9ddb-1a850e0e8e58
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_member [0.070013s] ... 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-f9467509-8c62-4ffa-b897-a1ee75e76938
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.128221s] ... 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-e6a00d21-b24d-4654-8cec-7182972cbd6d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.104461s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_observer [0.066431s] ... 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-d36826a9-1eed-43a4-9a72-b55fdb3b64af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.130278s] ... 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-9f9b7314-344c-4c67-96a8-9812d418cfe1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.062931s] ... 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-4e3aa8ed-edfc-4af3-af6d-86f1fd8397f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_volume_target_id_get_admin [0.069729s] ... 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-a1f82c81-cb1d-4470-bcd3-2ea450b62f20
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:46.636357+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.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.064907s] ... 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-936e916d-b965-40c4-93f9-57e10735ec4f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_owner_member_can_patch_node_extra [0.133658s] ... 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-2b50100d-060a-4f2c-bc9d-2bd3ab602798
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.065876s] ... 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-9023156f-66d4-40d5-a59f-b36516071493
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_member [0.071799s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cf498a1e-3359-4772-8557-ab1aabcdefc3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.190754s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.041636s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.063772s] ... 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-dffb046c-b60b-44e7-af59-93c10a0fc519
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.044629s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.062464s] ... 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-5fbd29c3-c483-4fb4-89e6-c34271d982a3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.044982s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.156203s] ... 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-ab025d37-48f8-4f3a-afe6-d2d79ebb19f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_observer [0.163701s] ... 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-f3cb01b7-6c7e-425d-b127-c44a8c5d2aa2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:18:46.825674+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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.047409s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.069683s] ... 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-1ad702b1-e635-450f-820c-868abfd5915c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.046254s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_patch_admin [0.078127s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-75d9b8a4-1440-458b-9eed-d8bc62e95974
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.062368s] ... 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-72b463ee-3460-40a0-8e03-7bd844b934c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.058159s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.064071s] ... 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-d7eeb19f-0e1e-481c-959e-44786c2f8e68
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_member [0.081038s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-ebab3f2c-7e31-42e6-83a3-77b365add7d7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok [0.054553s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_admin_can_patch_node_extra [0.205770s] ... 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-61503958-0570-457c-8860-8ca06ccd0dfd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.060023s] ... 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-182a0556-d5ee-4114-8458-a48db0c7dce9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok_asynchronous [0.051132s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer [0.103869s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-f4b9a4d8-f249-4a81-8d7b-1c00f943af10
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.065473s] ... 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-f998dcba-1e01-4083-8d3f-2b82997e8c63
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.114864s] ... 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-f0f02a1c-45f1-4211-90c2-01191b9fa2e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_delete_admin [0.069805s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-398a1217-48be-472c-a3f3-06f37c5da326
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current [0.106581s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.065703s] ... 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-a600cefd-b004-443f-b88c-9d49e9ab6001
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_member [0.068544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d77d8a60-03fe-486f-902f-3a251f0b5729
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.068666s] ... 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-27c79184-9d83-4d90-8e9e-8de114210c63
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_lessee_member_can_patch_node_extra [0.121232s] ... 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-d980dc8f-9626-4ea3-aaee-51f456c65821
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.108959s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_observer [0.074832s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-49be0c6d-44eb-44c8-b61a-bd2a0945b656
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.070384s] ... 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-99082a2d-5379-420a-bbc9-e6f9d2bbcc6f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_lessee_reader_cannot_patch_node_extra [0.083074s] ... 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-4623669e-84a5-4a8f-a76d-9ee1f4f76cbb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.093629s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.070067s] ... 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-55eb5d3d-ab1f-436f-bc21-e6d2554eedc1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_nodes_volume_get_admin [0.087133s] ... 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-34ccda98-d266-41aa-a16a-ae96d2170ba8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.084939s] ... 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-b6bd4f27-759b-42fc-b52a-2d78a30f99af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.087119s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.070149s] ... 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-e3f2ebd1-d51d-4b46-963b-a7ef5285d4a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_member [0.072734s] ... 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-10a8d38b-2cc9-4b98-ae2e-25864cb7d889
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.075870s] ... 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-eb651171-7e90-4c1d-8617-a0fec7b84ad6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.096482s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.122236s] ... 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-32b79268-7c17-4836-9d9e-16652ce88278
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_observer [0.080197s] ... 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-20b16435-8568-42ae-a653-d5120d643a24
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.071772s] ... 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-0cd62895-81dd-48f9-a74b-b38f42749129
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.085711s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_connectors_get_admin [0.081275s] ... 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-d9877735-2c6d-43f4-82d0-f27d7260cf72
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.119278s] ... 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-e7b12daa-bd01-4da6-96ce-3bf83e493cdd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.066734s] ... 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-29eb9166-392b-47f7-944f-dad3b052b611
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_member [0.086193s] ... 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-81cf48af-affc-4bbe-91db-e442575345cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full [0.098033s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.066323s] ... 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-78e1bf31-0f65-4df9-8f26-7acf587da1fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.065759s] ... 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-822a4841-1fb8-4c0d-9abb-4226217d57d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_observer [0.086300s] ... 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-52536be3-4943-4160-8ad4-f9309a98b8a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.144625s] ... 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-00a690da-ef8b-4fa2-9de1-3d8817338a57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.104917s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.066605s] ... 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-1bb29606-513e-4dc8-b99f-92f890536d7e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_targets_get_admin [0.081632s] ... 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-b02651e7-a0de-4cf5-8824-f0129c62a4c2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.119517s] ... 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-59523254-eac0-481c-a3b4-9bc0c2d82ca7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.103493s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member [0.078718s] ... 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-a14b799a-8fc7-4aae-afb3-44114b1c817f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.081107s] ... 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-daf59f53-34ef-40b6-ad6e-2e2ec737b74c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.108235s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_observer [0.078881s] ... 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-43cea525-c437-4d28-93dd-20f26bdd9354
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_lessee [0.080404s] ... 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-20ac99ad-bec7-40f8-91c6-107b96a32d48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.250803s] ... 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-aec5b1cd-df44-4d09-b7f8-692832b4fcf5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin [0.069524s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43e0f7c7-ce2e-412d-81d2-14b73cb5c5d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"drivers": []}
{2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.107242s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_lessee_admin_cannot_change_owner [0.079078s] ... 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-6968605c-ce1a-4de7-8fd0-c083d5bf3d3b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_member [0.062716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f4763547-0dac-46b7-a15d-a6f80210f006
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.070052s] ... 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-f66c24ee-44fc-40a3-88c5-66ff7a6780c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.062858s] ... 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-b7770bff-d540-4e42-bce2-bd8d1cce8bb5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.081096s] ... 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-ef7544e4-d1f3-41bf-87b1-64f99031fbfa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_observer [0.068693s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7416a41e-2f0f-4a52-9be6-94de7447c70b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"drivers": []}
{2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.109295s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.102509s] ... 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-94386dee-4142-4122-ae7c-ec2ba825f458
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_driver_name_get_admin [0.104288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-131c558e-aff4-454c-a257-a646de17838e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.138216s] ... 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-413dc336-8d59-4353-b069-42803a338a8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.183349s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.105701s] ... 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-1da2c1d5-ee08-42bf-9d16-460c6ab606b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member [0.102728s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-acdd2b0a-9bb0-4f66-be12-07779a99abed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.064650s] ... 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-4f8c3d5d-f93c-4ba5-8f20-9ab6b27b662f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_observer [0.064354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f9cda158-4915-42f2-aebb-9d4b9ed9b867
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.180169s] ... 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-dddfda36-d999-464e-9c1c-b68435e45de6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.073380s] ... 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-d635ccf6-efba-484a-a893-e0cd4760f84c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_properties_get_admin [0.064793s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-770390d1-a5d3-43b1-8e4e-7c68fc044aac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.075104s] ... 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-b195cc47-4dea-4ea7-8f0a-5a417fb9ced2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.062088s] ... 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-9913d718-b4d0-468f-acfb-1bcb5cd15143
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_member [0.067068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ad66f72d-5bd0-429a-96c0-9b9a66bfd475
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.062506s] ... 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-472a196f-f6f0-4aa3-97e1-61fb7ca66120
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.072837s] ... 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-d77e5824-8170-4be0-8540-b076d7e2e5fc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.302300s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_observer [0.066594s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b3d69f65-fcb9-44a5-885c-e66505a0aadd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.064781s] ... 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-28031bf0-3494-448e-9e91-78d76a622277
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin [0.064084s] ... 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-210bd860-be12-4929-92ff-894a365b03b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.086112s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.108416s] ... 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-d5ac63f0-1906-4a95-8e32-ca79a9cd2a61
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_put_admin [0.063661s] ... 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-7512e600-fb17-4f4d-8f0b-9d60c5efa69b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member [0.060391s] ... 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-570e81ad-62b7-4af6-babe-3fc6563b5395
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.071251s] ... 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-e72a3040-6a0e-4f6f-b8dc-8cc578051f0a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.083092s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_member [0.065309s] ... 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-d088dce2-8221-4bae-bf09-1b65d6d5e943
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer [0.067668s] ... 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-4c883e77-1878-4f18-a02f-1dc9c6575e5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.071021s] ... 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-4e2b9ad4-f52b-43f7-9e3b-d4f8c2d6a6f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_observer [0.064616s] ... 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-dfee50ff-73a1-48e0-a1ff-50710ee30b2a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver [0.087571s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin [0.065416s] ... 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-61bb9616-85a7-4c80-a3dc-4b672f84a5d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_vendor_passthru_methods_get_admin [0.066705s] ... 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-a0687de7-341c-46f6-8d3f-f8a4794a8cc0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.074974s] ... 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-4004eae0-6181-4043-b80c-71bbfeb20675
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.093254s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_member [0.062654s] ... 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-34be3384-5cc7-49b1-92c5-734202ddb300
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.079074s] ... 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-1cf1f840-e12b-423f-945a-204da35d5e71
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_observer [0.061148s] ... 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-7c8eb124-4366-4ff7-ae82-1ceba8639500
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled [0.107332s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.077427s] ... 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-de0f4e8b-cd51-400b-bfa3-9baef1ad9c16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_get_admin [0.062737s] ... 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-184f5d15-7ed0-4696-ab12-9de920296155
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member [0.249719s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-38550efa-0e9d-410e-9c0b-588ebbf36c1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_member [0.059502s] ... 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-6a680704-90f0-4c1d-9038-bb206dfa1e0f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer [0.057966s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6817afdf-1025-4db5-917d-0cc9ea1ffb95
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.135780s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.125936s] ... 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-4747541c-0c39-4949-8aac-e0a72a71d455
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_observer [0.064416s] ... 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-ea3a456a-9cb2-40cb-8ff0-89a161a24cc1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin [0.064288s] ... 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-24d57894-3c68-49b4-8c3b-cb0289c491e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_post_admin [0.058521s] ... 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-56381540-6328-4a80-8cfd-47d45ad51601
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.091519s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member [0.089959s] ... 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-528b88de-18f1-46a1-92b5-a081df9bcb05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_member [0.060051s] ... 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-b3ae71bf-6f2a-41f0-b075-3d06bcbaabb5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.081735s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_observer [0.060038s] ... 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-23fa050a-7350-4ad9-816d-7857248ce1bd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.079881s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_put_admin [0.060547s] ... 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-e17f3dd7-90b9-4b74-bf1f-0ecf368f6469
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer [0.127322s] ... 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-972f97f7-c083-40a8-9bc7-9eb51e771565
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_post_admin [0.060921s] ... 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-aa3a7ee3-6764-4b1e-b699-aee8f72a421c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_member [0.061335s] ... 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-8bae29d5-bc9b-4542-8bdd-82a3a6bc8fbf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.149173s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_member [0.145396s] ... 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-94fe0c96-dd77-4a92-8c9b-a2e13c29a0a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.426862s] ... 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-32fe6820-0814-4e8a-b7a3-66287da3ccb1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.057838s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_observer [0.062864s] ... 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-84dac96d-2704-4c2c-a0f8-f4f788e2156a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer [0.098054s] ... 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-c08cbebd-d711-481c-99b7-c05e2cd13842
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_delete_admin [0.060377s] ... 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-52d8e9c6-7de7-4d12-bfcf-5bbe3dc9d893
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.091937s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin [0.067527s] ... 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-31bb5c2a-e35f-4bb3-84fa-24312a68a825
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_member [0.060171s] ... 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-efc1a39d-851f-49f4-8cde-8724964e01af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.173654s] ... 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-b242a037-c426-437c-a497-7f230a99894e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member [0.064592s] ... 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-7ffa305c-468c-4fc9-8a63-93bdd0976b5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_maintenance [0.120533s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_observer [0.079890s] ... 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-b57e79b6-6b34-45d7-8457-907edce14a81
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_observer [0.064260s] ... 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-1ad4479d-9ca3-46fe-8b1e-1fe739c8747e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.100095s] ... 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-678eb5f8-0588-4990-982b-40cd1a08fa4d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_traits_get_admin [0.080218s] ... 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-084e4f24-16cc-4c29-b8e1-fdbdd9513818
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.069573s] ... 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-c6ed5d76-52cf-4f27-a978-e84fc6287472
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.111804s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_member [0.066282s] ... 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-13521cb6-28bf-4921-bca0-f87344750dd1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.099637s] ... 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-dd8d6d40-754f-4f0b-92ea-2fde8ccea425
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_nodes_bios_get_admin [0.077348s] ... 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-da551feb-e26f-4da8-9236-9af3e03c9413
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": [{"created_at": "2025-03-28T10:18:50.288285+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_observer [0.063573s] ... 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-318685b8-9d65-419a-8542-c49ce70a1915
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.112169s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_put_admin [0.065277s] ... 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-d041d4da-bc7a-4c45-95d2-f46321156b02
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_member [0.071094s] ... 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-4e05eae8-cac4-454d-9418-1e989df85c88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_manager_can_patch_node_instance_info [0.106539s] ... 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-3af7266f-4787-4242-8f36-cec263512cef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.115084s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_member [0.067026s] ... 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-7f4aa376-d75e-449d-89a0-c38dd790f077
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_observer [0.075391s] ... 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-4156db08-a5a2-42ab-b22f-e1693b30e4d3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": [{"created_at": "2025-03-28T10:18:50.437481+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.073397s] ... 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-60119963-3053-49bd-8780-0487514dfa4b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_observer [0.066360s] ... 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-16084cd6-5405-40df-9d5b-e36a5c042280
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin [0.076001s] ... 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-28a63315-5004-4acd-b1d4-6c4e6c497eeb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"FAKE_SETTING": {"created_at": "2025-03-28T10:18:50.513970+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_lessee_reader_can_patch_node_instance_info [0.069058s] ... 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-2ff32b7c-71c7-4e8f-9889-2babab27a021
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.116784s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_delete_admin [0.061898s] ... 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-56570bab-8b84-4ae5-8647-fb681e95bf5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_member [0.072973s] ... 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-5d0df4f8-64f7-4518-8fd2-7580fe7cf393
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.067889s] ... 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-5be1b26f-5883-453b-97bd-4a4e1b9e7a29
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_member [0.062949s] ... 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-cb75e178-2ffa-44f6-8bef-b3f95d3067f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked [0.102430s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.064528s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f1c79e5c-242f-4769-aa0c-476cbcabd500
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer [0.080064s] ... 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-d4e3a991-51b4-45be-9260-4d9ac9518a80
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"FAKE_SETTING": {"created_at": "2025-03-28T10:18:50.666219+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_observer [0.068004s] ... 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-aefd5cc3-dd09-4968-8c61-85555b7e1b19
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_owner_admin_can_delete_nodes [0.070969s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-0ed9d1be-72aa-44cd-a176-934e39a87e31
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin [0.074497s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-23b08061-c8e7-4913-b36b-9bf7f3df1bbb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.113787s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_trait_put_admin [0.068124s] ... 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-64fa51ad-3b0c-4b5f-b6d3-c2eb3d268cbe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_service_cannot_delete_owner_admin_nodes [0.067414s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c445851e-c05d-45cc-a8cc-1eb633cfe79c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_member [0.073020s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f03eb6e1-e405-4dcb-ad89-71632ec84754
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_member [0.066537s] ... 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-dad33237-e108-4877-853d-9794e1f39f79
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.116229s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.070164s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-576d47f2-8e09-42c4-a489-ab82731c9a07
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_observer [0.067173s] ... 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-3f28e711-c873-42d2-af74-b3f275e7050f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer [0.090182s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-984dcbd5-46eb-45dd-b31b-d8b06ac8dafd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.068136s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b56f20d1-e8b3-43d3-ac4f-208348db486f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_delete_admin [0.066534s] ... 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-287c4630-5784-4bbc-9330-d331fab07c58
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.106031s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_hostname_get_admin [0.074850s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0a4ddb83-0235-4f9c-8492-d7e170d92b24
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:50.981682+00:00", "updated_at": "2025-03-28T10:18:50.982405+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_lessee_admin_cannot_delete_nodes [0.069571s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ee52c840-46b7-47e8-a431-fd1e72f04d56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_member [0.072215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-38a245e2-249b-4097-9ad4-c08fd93d5744
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.104910s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_manager_cannot_delete_nodes [0.069574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-26fde79a-c800-4701-9235-bb5a37ca7560
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer [0.079109s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9b2a219d-b557-4859-b83c-03690d2692df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:18:51.130538+00:00", "updated_at": "2025-03-28T10:18:51.131509+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.064040s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-40ff7f00-1def-4411-9f31-218e150624ff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_admin_can_validate_node [0.067280s] ... 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-4a1c89f2-3ccb-4e8b-b9ce-afb231afdb19
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_allocations_post_admin [0.093404s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-1eff886d-6a26-476d-9a34-252a456d0f50
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member [0.303456s] ... 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-6685120a-d048-4c6c-912c-feb453ab4499
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.069538s] ... 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-ac521f34-04b4-47c8-917d-8e20461ca1e4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward.
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_observer [0.075302s] ... 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-6b5df26c-2593-4023-adec-a4b54567b20c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_lessee_admin_can_validate_node [0.068950s] ... 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-3833f6bc-d968-4730-8b0b-f18be7a23ad7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_observer [0.077409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3cdc0897-79a7-4738-a2c1-7dd16290b22c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.065420s] ... 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-fb3bd53a-ec1f-423a-8cf7-5b7d2785f2c2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_vifs_get_admin [0.101803s] ... 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-6f4b8366-baa5-4344-a692-347dede103f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.361664s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.064030s] ... 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-d496152e-05b4-4076-9eab-0d7a2be23d06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_get_admin [0.113919s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6cb47a5c-5d33-4b84-9e8a-117bd52d2cf0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "7877c62d-61a0-42ee-adfe-da06e51e07b4", "created_at": "2025-03-28T10:18:51.446972+00:00", "updated_at": "2025-03-28T10:18:51.456042+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/7877c62d-61a0-42ee-adfe-da06e51e07b4", "rel": "self"}, {"href": "http://localhost/allocations/7877c62d-61a0-42ee-adfe-da06e51e07b4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.064244s] ... 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-ba7ba7bd-18f8-4e77-bfd7-9df7d9c6e74c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member [0.086215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-89e80c37-d145-4af4-abb3-7fabd894cb04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_member [0.140027s] ... 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-7dceb045-a058-41c0-8db5-72688c46aea7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.067611s] ... 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-97571815-74fd-4fb0-972a-646833795704
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.178948s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_observer [0.077000s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-820fc4f4-c2a3-414c-9e33-306286cab523
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "7849b812-c662-436e-ac7c-e1f1a7182989", "created_at": "2025-03-28T10:18:51.638847+00:00", "updated_at": "2025-03-28T10:18:51.644792+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/7849b812-c662-436e-ac7c-e1f1a7182989", "rel": "self"}, {"href": "http://localhost/allocations/7849b812-c662-436e-ac7c-e1f1a7182989", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer [0.084256s] ... 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-365a0e9a-535b-49c2-b9a3-ee90e9282889
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.116277s] ... 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-4e7a9330-834d-4a71-b779-060903151525
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_post_admin [0.064052s] ... 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-b1155a76-9b93-4d62-b688-4f5da52d7266
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin [0.091890s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/6df01cba-dc02-4afa-957e-afbea6bb9579 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d7d4369-3ad1-4f0d-a70a-c9eb4fd3474c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6df01cba-dc02-4afa-957e-afbea6bb9579", "created_at": "2025-03-28T10:18:51.715141+00:00", "updated_at": "2025-03-28T10:18:51.720003+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/6df01cba-dc02-4afa-957e-afbea6bb9579", "rel": "self"}, {"href": "http://localhost/allocations/6df01cba-dc02-4afa-957e-afbea6bb9579", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_member [0.063846s] ... 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-f2f8dac2-ab7a-4adc-a5a8-aa839791377e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.067472s] ... 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-15336734-b11a-4b30-9e9b-7a1a6cc9584b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.184830s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.063881s] ... 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-9cc34c02-ce6f-42e0-bca6-a16756704a6e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_observer [0.099360s] ... 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-e825f688-8514-46c0-82bc-ce6580c13e5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.098638s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_member [0.157332s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/13aca290-a719-4f53-a979-d22e12ffb6d1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-306ce261-bbe0-414a-a382-ccdf7466ef99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 13aca290-a719-4f53-a979-d22e12ffb6d1 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.063989s] ... 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-a73cb405-8729-4617-8115-4e7633a77cf7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_node_vif_ident_delete_admin [0.088979s] ... 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-c8a4bfe4-a97d-461d-806a-d009130e8034
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.087290s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.115238s] ... 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-e4566e62-94a7-4865-8617-437a386f9eec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_member [0.062054s] ... 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-5a275650-cc5c-4069-8ba7-50e655d52351
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_observer [0.148921s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ebbd6f37-731c-450c-a5ab-ce816f54b4bb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ddbc5ab5-ceff-4d29-b2e7-b993ffde1e11
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ebbd6f37-731c-450c-a5ab-ce816f54b4bb", "created_at": "2025-03-28T10:18:51.987294+00:00", "updated_at": "2025-03-28T10:18:52.004343+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/ebbd6f37-731c-450c-a5ab-ce816f54b4bb", "rel": "self"}, {"href": "http://localhost/allocations/ebbd6f37-731c-450c-a5ab-ce816f54b4bb", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.083632s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_observer [0.069467s] ... 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-dac6ca1c-17e1-43a2-88e4-966bdec259e3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.093033s] ... 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-95ff9330-9398-4b33-a6cc-ea74acf29b5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_patch_admin [0.098803s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/077d1c78-e22c-422c-807a-2fa427d8acc8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4982bf35-ebf2-4b24-91e1-573e4f2ff8c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "077d1c78-e22c-422c-807a-2fa427d8acc8", "created_at": "2025-03-28T10:18:52.134198+00:00", "updated_at": "2025-03-28T10:18:52.180314+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/077d1c78-e22c-422c-807a-2fa427d8acc8", "rel": "self"}, {"href": "http://localhost/allocations/077d1c78-e22c-422c-807a-2fa427d8acc8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.107912s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_management_indicators_get_admin [0.068030s] ... 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-454e677c-5e6a-4d90-b89b-3382cd719e57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_third_party_admin_cannot_set_maintenance [0.079340s] ... 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-b8c891a1-4500-4c04-9569-eb36a43c30bc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_member [0.068141s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/f18b9959-fde9-44b0-a2ac-6da53acbfc28 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4f545f18-3a5f-483e-b76e-997c36363ac2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f18b9959-fde9-44b0-a2ac-6da53acbfc28 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_member [0.069292s] ... 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-709ed764-291b-4370-9af2-e0b4367d02a3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_observer [0.066697s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/8ec361c8-b423-44c6-a6ef-c370c7ea8381 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-78b1e28e-61f5-4f2d-8bbf-3f9da4a7e579
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_automated [0.116984s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.085208s] ... 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-15bb4f41-1135-4cfb-91eb-61dd105517c2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_observer [0.071334s] ... 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-28fe73fa-667c-403b-b338-e2dc4b1be530
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_manual [0.110616s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.140913s] ... 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-17cb8c2d-d49f-436e-acc6-f7ef1cfcd4dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_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.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin [0.258542s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/de655516-88b9-4d9f-9e8b-3aa970dd7bab GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-189ed686-d6a4-4a98-819a-6fb80d712600
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.149847s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_110_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.146699s] ... 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-9d9bddb4-0a27-4856-bd9f-541157cdb9cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_member [0.083270s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/3cabc02d-3c3f-4bb9-865d-44e3733e250b GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-53178a78-a468-4890-8fa7-ffa10fd1f9ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3cabc02d-3c3f-4bb9-865d-44e3733e250b could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_observer [0.079120s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/81657197-2d8f-4c68-9d22-09d778dfbe8a GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4386abf8-d94f-4818-b880-f04765a2b7fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_111_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.165770s] ... 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-06fed2cf-e1fa-4c4e-bee2-aae87cb20c06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_nodes_allocation_get_admin [0.066522s] ... 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-a341ac71-8783-421b-ab83-be1c26398ca6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "572bc451-bf23-43c5-ae97-42b7de6ab60f", "created_at": "2025-03-28T10:18:52.769896+00:00", "updated_at": "2025-03-28T10:18:52.774092+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/572bc451-bf23-43c5-ae97-42b7de6ab60f", "rel": "self"}, {"href": "http://localhost/allocations/572bc451-bf23-43c5-ae97-42b7de6ab60f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin [0.088473s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e4e0301f-fad8-459c-a3cb-f8bdd379f86e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.068090s] ... 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-a3f0aa8a-9f94-41ba-bc6b-0168dac3e46c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_member [0.068006s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-59331f44-620f-4fd8-91ac-d5099b43b988
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_member [0.111134s] ... 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-369e77f2-960b-4298-b14d-597cbaec97e7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.063181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a2d0819d-9771-44a6-ae24-99854a0f2265
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_observer [0.067278s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bdbe09c2-46a6-467e-84de-8623b5e3b62f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.079745s] ... 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-d61e35a6-e79e-4a2b-9048-e79245289a72
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer [0.123015s] ... 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-312cb074-2b56-4a71-9d1f-ccb32be37d8a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f23c4729-531e-402e-b0ec-76f66a4829f7", "created_at": "2025-03-28T10:18:52.984784+00:00", "updated_at": "2025-03-28T10:18:52.989151+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/f23c4729-531e-402e-b0ec-76f66a4829f7", "rel": "self"}, {"href": "http://localhost/allocations/f23c4729-531e-402e-b0ec-76f66a4829f7", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin [0.088477s] ... 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-be120f48-dac8-428d-b84d-8f00375dde7c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_delete_admin [0.092932s] ... 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-11cdf39a-9bfe-43d4-ab63-b0460671c87f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.123053s] ... 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-e5edf8f7-de52-40ed-b832-9cb6637fa44f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_member [0.075870s] ... 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-3594f78e-fa44-41c2-b010-7741fd98744f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_member [0.074350s] ... 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-de400e42-8c70-4538-ab31-2b5e7be02e99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.077258s] ... 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-2439210b-16bb-4790-bfcf-d6ef5b598243
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_observer [0.083967s] ... 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-d40089bd-1718-4618-b572-7bb077f97a06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_observer [0.076597s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-25a2cd8e-0701-46ba-89b8-93fe4b2942db
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_detail_get_admin [0.063907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7c057b8c-dc38-444e-bc09-5d6c535f7326
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_deploy_templates_post_admin [0.108711s] ... 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/19481d27-4e77-4b7d-ae56-21d85a650252
Openstack-Request-Id: req-ef640f83-7847-46ec-90e1-ceaffe28342c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "19481d27-4e77-4b7d-ae56-21d85a650252", "created_at": "2025-03-28T10:18:53.397776+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/19481d27-4e77-4b7d-ae56-21d85a650252", "rel": "self"}, {"href": "http://localhost/deploy_templates/19481d27-4e77-4b7d-ae56-21d85a650252", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_member [0.116818s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0c9b4b6d-f20c-4ad3-bf11-30bd83bf2ebc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_member [0.126829s] ... 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-784f90b2-19d8-46e3-8624-dc2acd346098
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_observer [0.113192s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0d1fe07a-c573-4ef5-aa93-6d1f22c102d6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.346444s] ... 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-db2992ba-d06c-4851-b716-e64fc427f97c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [0.991152s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_observer [0.066275s] ... 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-bdce304d-d9db-482c-92fc-f3673a2e516d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_portgroup_ident_get_admin [0.110225s] ... 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-e4905eb1-bbe9-4a49-8d77-743bf64fd269
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.107947s] ... 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-28c7c454-bf25-467f-9f8f-cc654cfed232
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_get_admin [0.132390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-530e1646-8371-4ef0-8750-0508e2cd7ce5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "592e0538-706d-494f-ab39-d53286e49739", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/592e0538-706d-494f-ab39-d53286e49739", "rel": "self"}, {"href": "http://localhost/deploy_templates/592e0538-706d-494f-ab39-d53286e49739", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.074055s] ... 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-3333fbca-8d31-42c3-b8f3-1cb1707cfcf8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_member [0.122462s] ... 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-4e54f5b4-8b65-4691-98e6-6fd8fc0d4ba9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.195132s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_member [0.075206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a4813c9f-a58d-43bb-a74d-7630862c91ff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.081851s] ... 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-9964eb5c-3aae-45b0-9d40-e06b4ac7da29
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_observer [0.091956s] ... 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-7b6ea362-7a53-42ff-a111-8f8857b6c01f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_observer [0.069194s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-383d5bf7-be95-4600-a854-a3aa72587c92
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "70d60676-e130-4ac3-9f65-4eb5a2eed237", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/70d60676-e130-4ac3-9f65-4eb5a2eed237", "rel": "self"}, {"href": "http://localhost/deploy_templates/70d60676-e130-4ac3-9f65-4eb5a2eed237", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.116309s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.126171s] ... 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-6b7b79b7-0353-4c85-9335-f18bd9a7e2f0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin [0.121222s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/25e5376f-ba1a-42d0-8be9-fe1968605db7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9369207b-8d4d-4643-b5bd-4aa1e58fec3a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "25e5376f-ba1a-42d0-8be9-fe1968605db7", "created_at": "2025-03-28T10:18:53.947859+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/25e5376f-ba1a-42d0-8be9-fe1968605db7", "rel": "self"}, {"href": "http://localhost/deploy_templates/25e5376f-ba1a-42d0-8be9-fe1968605db7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_patch_admin [0.146169s] ... 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-a9823028-3c32-4caf-8315-ca5c8a6aa293
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member [0.116584s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/8a87d656-cd5b-490d-8d15-6d5438f78f25 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-98f03297-0482-48e0-afe5-0b74cb148586
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [0.146940s] ... 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-7ce421c1-e0fe-461f-9156-8390ac574ccc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.264439s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_member [0.148034s] ... 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-e0992b1c-33ac-42ee-84fc-d5dbda1cb76e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer [0.134361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/9649fa9e-7148-49e5-8ee8-dbfa127f5111 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-72df2bb3-8167-4ef6-8f60-42895fdb5421
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9649fa9e-7148-49e5-8ee8-dbfa127f5111", "created_at": "2025-03-28T10:18:54.210881+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9649fa9e-7148-49e5-8ee8-dbfa127f5111", "rel": "self"}, {"href": "http://localhost/deploy_templates/9649fa9e-7148-49e5-8ee8-dbfa127f5111", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.122592s] ... 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-33df64cc-a7ea-4e08-bf2b-a6843c628d50
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_observer [0.157163s] ... 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-2078043d-7d9f-4b07-b29e-4d5ce853bd03
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin [0.065469s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a2008854-f340-4039-aadb-fd3b53c5b604
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [0.233221s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.141525s] ... 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-da30f5ce-9003-4674-9fe2-501c0642141f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin [0.140365s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/72645993-fc8f-4e59-9654-41ae7c188b5c WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-46e07c3c-e2ce-4ddb-b6ce-73a7caa5446a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "72645993-fc8f-4e59-9654-41ae7c188b5c", "created_at": "2025-03-28T10:18:54.344351+00:00", "updated_at": "2025-03-28T10:18:54.402792+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/72645993-fc8f-4e59-9654-41ae7c188b5c", "rel": "self"}, {"href": "http://localhost/deploy_templates/72645993-fc8f-4e59-9654-41ae7c188b5c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_member [0.069926s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d716e476-5f42-456d-90fb-28e9dfab1223
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member [0.063889s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/44d1a02f-aa94-4f9e-82ae-fd882950eecb WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cc4e4f47-b3c9-4e5e-a9c0-b0c6396dd840
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer [0.064209s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/f7029e1e-e45e-465e-a749-70e1a95e9ee0 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-24426cf8-8cf5-4393-b68f-eb8e0a6a082b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.178223s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.190515s] ... 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-ebf0e70c-b818-4e1c-8b5d-be06ed5e15c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_observer [0.153276s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ce0f0582-2c8a-4423-be63-373ca20aba75
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin [0.089293s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/576cd61b-6533-4a92-8656-6978bc4cedf8 GOT Response: 204 No Content
Openstack-Request-Id: req-a21ff742-d5dd-483c-a911-89c072746305
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.100462s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.133071s] ... 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-364a2839-6cb0-42b8-8bb3-5cc590d5024f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.079883s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_nodes_portgroups_get_admin [0.151959s] ... 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-1ac04a78-630e-4fcd-90d3-f892552b98ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member [0.132583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/ee8eebfa-b0e0-4dc2-86fe-a640e53efb1e GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-14547a34-3ace-4545-a152-4c4d48bf98a1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.070415s] ... 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-725c2947-5a39-4c53-816c-f08c9cb30524
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member [0.069880s] ... 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-b7d11cab-d08a-449c-8942-84a4c4ad777f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer [0.062459s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/f155dde7-2078-4cf9-8d45-87c17ba0c253 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0c44b2fb-2eac-4c4c-9c11-ff6e45004be4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.066833s] ... 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-05a152c1-0bb7-4528-a8b1-e30ff16dd636
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.149850s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_chassis_post_admin [0.065999s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/chassis/438f5378-c77f-495c-889e-43361426761a
Openstack-Request-Id: req-411529d6-05d4-4f94-a824-6217e3071f57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "438f5378-c77f-495c-889e-43361426761a", "created_at": "2025-03-28T10:18:54.909320+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/438f5378-c77f-495c-889e-43361426761a", "rel": "self"}, {"href": "http://localhost/chassis/438f5378-c77f-495c-889e-43361426761a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/438f5378-c77f-495c-889e-43361426761a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/438f5378-c77f-495c-889e-43361426761a/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_observer [0.069765s] ... 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-7fb0090c-c595-49f2-a3f8-e3742a62685d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.066128s] ... 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-57b26f15-681d-4bac-a94a-67c4d3cc3157
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_detail_get_admin [0.070450s] ... 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-2f174d81-ced8-45e5-90ba-9163f296f908
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_member [0.069379s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4e98a4b9-8584-4b6a-84de-045e87a1014d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.096951s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member [0.081491s] ... 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-a5691e32-f4c6-4e63-a309-795586ac51a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.167410s] ... 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-2cc0ba6c-27d8-4ea5-966a-17e69db4eb35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_observer [0.139172s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ad1ec992-e107-4fdd-8472-099b0dcbfd6b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_owner_manager_can_get_supported_boot_devices [0.089328s] ... 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-a26fd5e7-a261-4b67-8a34-093b89afc8ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_member_cannot_get_supported_boot_devices [0.078379s] ... 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-968f8ea9-1b2c-49fe-89df-41297adfb784
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_get_admin [0.163477s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0fa9407b-dd9a-438a-b4db-5af298670635
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.325085s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.030451s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.027067s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_observer [0.343130s] ... 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-e2c88ff4-6a8b-4d27-a1ca-cbf8aaf11b97
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.026946s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.027237s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_member [0.136544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8367d86f-3a98-4b63-809b-3c95230dfcea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.151259s] ... 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-9eeba198-935b-4a2d-ae3c-030a118df977
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_ports_get_admin [0.066849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-103f12cb-b568-4ca1-b7a7-3a4b7d299726
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.037240s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.033809s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member [0.062339s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dfacf2fb-0ad9-4306-8964-d51882c7a525
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.116837s] ... 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-cbf020c1-0508-4178-8190-08ae49c637a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_observer [0.141389s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-406ef82a-150f-44ae-8e82-04ca3a169f39
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.084270s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_observer [0.074862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dffda28e-ab02-42ec-b526-a2d632fbf181
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.066095s] ... 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-d4bb82d5-fbb5-4c1b-960c-a59d002338f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.062862s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.033748s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_post_admin [0.084807s] ... 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-01ddb945-91d4-478d-b1b9-a6f418cfb3d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.097346s] ... 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-4652c8a6-564a-49eb-a982-fcecb1432af6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.028011s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_detail_get_admin [0.142171s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fe72b490-221b-4575-8cb0-cc472137d875
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:55.657176+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_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.034138s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_member [0.077758s] ... 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-6834dce6-1e8b-4d49-97cb-642fff9e412c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.060249s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.027132s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_observer [0.072467s] ... 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-d7e50ee6-f0e9-49f5-8e19-7c8a3dd9c6e7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_member [0.126348s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-23ea39d6-790f-4d4f-ac27-3fe0ce761507
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_manager_can_send_non_masking_interrupt [0.154293s] ... 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-00db72f1-ca9a-423b-b422-6b835de1455e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.055150s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_detail_get_admin [0.067285s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-406090e9-1dce-40f5-bcf0-357b8324fbab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer [0.065444s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e852d5b4-15b5-4e57-a68a-1fc19d52cb16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:55.897714+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.090305s] ... 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-041c78bb-8cc5-4cc9-9564-0fec0d5d1e35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.074438s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_member [0.065357s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9858d89f-062f-43e3-9ae1-898fdcce38e7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.069387s] ... 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-cd8133b4-6602-4e5b-9ec8-64c6c45033d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.058883s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_observer [0.067485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-52e8a552-52bc-4d80-914c-a6914611a10e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_chassis_id_get_admin [0.134986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07a036e8-e3ef-4d49-ac9d-a5dbaf5d4f9d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:56.008112+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_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.056335s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_third_party_admin_cannot_send_non_masking_interrupt [0.070521s] ... 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-7aa5e5da-25c0-4a7c-bfb4-f33508ceec9d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.025732s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_member [0.102358s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-87b4d2bb-4561-4da3-8817-98db76062d84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_port_id_get_admin [0.107133s] ... 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-93ad5972-db98-41b0-bbad-936c79977d54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.038634s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.082358s] ... 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-83ab86f9-4ec9-4ac1-ba8e-0075b5fc3e7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.055880s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_member [0.065803s] ... 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-f6fa7608-1806-4732-9fe7-30639ced1f86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_observer [0.072847s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58ce1be5-36e4-4faf-963b-48eaf3b62911
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:56.211412+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_observer [0.063613s] ... 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-9794ea8b-72ef-4afd-ac8c-07e644cb1e48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.065562s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.147456s] ... 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-9653d6a4-4b9a-4bcf-ad55-f879ce35cef4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.055166s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_patch_admin [0.077642s] ... 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-b4ed80f4-fc0e-4211-b719-b9e34b3eb8eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.051440s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member [0.066609s] ... 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-246fb8b3-06b0-461c-a8c6-e7f31605a322
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.052062s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_128_third_part_admin_cannot_get_states [0.137326s] ... 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-e0c19f39-792d-48e9-8f06-d8e1eda69ccc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.045987s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_patch_admin [0.277652s] ... 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-01c865f7-9ec6-458b-b7da-5c7468462c68
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:18:56.481402+00:00", "updated_at": "2025-03-28T10:18:56.514895+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_observer [0.073622s] ... 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-9c851cba-8750-4f4f-809f-59ae1f7a407a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.026434s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.025250s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_member [0.067377s] ... 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-9aad96a1-c859-4148-bf8a-c2aa944c0da6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.025632s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.025428s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_admin_can_put_power_state_change [0.145397s] ... 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-a789a2a3-0ab2-4558-8635-1c3a1516d78f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.025315s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_observer [0.069085s] ... 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-f15b0e93-7e44-4346-b93b-54055b44a6d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_delete_admin [0.137149s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-99e02034-3fd2-4b8f-884c-4c89b35b2aa0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.039441s] ... ok
{2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.034820s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_delete_admin [0.069641s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-e63c3201-93a5-44f0-9c1b-b832f801699e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_owner_manager_can_put_power_state_change [0.127123s] ... 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-5950fa9f-863a-4f1e-8425-b948b727239b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member [0.111444s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a0bb7bf1-0121-4d5f-8d7b-280a4c4dc8ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.068632s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_lessee_admin_can_put_power_state_change [0.072877s] ... 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-ca467c20-7ece-47f2-a8c8-6559e91607dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_observer [0.069715s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-80a7a782-f125-4751-86a8-4ae30ec22f16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_member [0.148861s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ed7b458b-e11d-410e-9eb3-65484533f215
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.097049s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.076333s] ... 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-e7647f63-d271-4d36-80a8-78ffc6a41e21
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.047761s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin [0.095457s] ... 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-5cc38ec7-7803-45ed-afcc-fbd551b2b517
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_observer [0.096140s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9ea99393-35fc-48b6-aac7-c5fc5c27dabd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_node_history_get_admin [0.065988s] ... 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-953fa219-693a-406a-b916-a81e82db3742
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "15059020-b1ce-413c-b91e-ef37e711a92f", "created_at": "2025-03-28T10:18:57.020523+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/15059020-b1ce-413c-b91e-ef37e711a92f", "rel": "self"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_member [0.084429s] ... 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-15253051-d81e-429f-91a9-e5ac8b3fe364
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass [0.138894s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_owner_member_can_put_power_state_change [0.173082s] ... 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-2c35878c-0fde-4db6-8c3a-24fd6517f14e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer [0.070178s] ... 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-60f26a71-988b-4a5b-8a8e-1c06c5409c48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_member [0.098969s] ... 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-34c92f83-27fb-4307-ba94-5c4188fa273a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.092633s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin [0.070764s] ... 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-4efefcdf-8e62-4ae1-860f-7e490b6f495b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_lessee_member_can_put_power_state_change [0.143210s] ... 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-f69a6e9a-78f6-44f5-a079-a430af8ac86a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_observer [0.135470s] ... 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-e15fa5bf-48c1-4d98-b73e-6021cbf51abf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "2cc79f54-55fd-4eaa-bef3-a851778e54ca", "created_at": "2025-03-28T10:18:57.252864+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2cc79f54-55fd-4eaa-bef3-a851778e54ca", "rel": "self"}]}]}
{2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass [0.109552s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_member [0.087846s] ... 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-2cdb49c1-f2d0-40a3-ad26-79afe9aba175
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.074426s] ... 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-acd70a70-5aa5-4d29-b9f6-4024950f233c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_entry_admin [0.081445s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2ae4d191-928d-4fba-8392-79cffd996d70 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-36b002cf-14f7-47f2-a89b-4f404ebdf30f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2ae4d191-928d-4fba-8392-79cffd996d70", "created_at": "2025-03-28T10:18:57.340993+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/2ae4d191-928d-4fba-8392-79cffd996d70", "rel": "self"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_reader_cannot_put_power_state_change [0.069206s] ... 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-3a854d89-7add-4102-8362-20826bffa221
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_observer [0.140583s] ... 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-f2c20683-820a-44c0-829b-2d32a9ee64ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days [0.160396s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_member [0.095476s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/24b0efc9-ac39-4be6-9feb-76ce1b9d2ddf WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1134b65a-abac-4b37-b2e7-70c4e2d1ef99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_137_third_party_admin_cannot_put_power_state_change [0.096659s] ... 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-5c985dd0-777d-4a2a-9da4-89072343e7f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work [0.082980s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer [0.070078s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1ce9014f-6501-47ca-bd03-f7def3a33bdf WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-618fd115-899d-4a8f-8dfd-5854ad3a3de5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1ce9014f-6501-47ca-bd03-f7def3a33bdf", "created_at": "2025-03-28T10:18:57.509639+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/1ce9014f-6501-47ca-bd03-f7def3a33bdf", "rel": "self"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_portgroups_ports_get_admin [0.157646s] ... 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-2f11b4b4-33f4-4c46-a06f-5723f3e1721a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.141602s] ... 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-a5744b08-31c4-4787-b2dc-62db70b662f0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor [0.147827s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member [0.091864s] ... 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-12369d2d-016a-4b19-92c0-5b5c3edcceb3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.071242s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_observer [0.069344s] ... 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-9185dc59-d227-49ca-8406-bb0facb27961
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.123747s] ... 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-81b55ed0-7a1a-4253-9412-a0b9b4c1442a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.129238s] ... 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-b0c60e58-23c5-4601-9317-afb4c8570aab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.053103s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin [0.071181s] ... 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-26c60e53-32d2-43c9-b1b5-b3c4d4cd1115
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.094397s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-133aa8df-f72d-4263-b6a1-3d943aee0644
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_member [0.070511s] ... 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-ebae0967-5a30-4a23-9106-5ffd267674ff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer [0.065695s] ... 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-ee20975d-fcc5-4414-bbda-2128c9593855
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_volume_get_admin [0.058934s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b0646872-e74d-4d27-9bc6-ad40de137edb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.167056s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dd481765-171a-4bc7-a5bc-7352a201881a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.311974s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_member [0.100488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-780b7340-8e70-46eb-8444-e0360183214e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_lessee_admin_can_put_boot_mode_state_change [0.436185s] ... 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-b86d4519-2b4e-42be-bf69-1adb3fba3f49
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.108462s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.178378s] ... 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-611c3ae3-eb3a-440f-9014-7278aa5d5c24
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_observer [0.116462s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-66e5362e-b42d-43a8-a8ce-09a69971d9c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_manager_can_put_boot_mode_state_change [0.069107s] ... 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-e4ee4a6c-f809-4266-9b61-222a403d179a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.086688s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_connectors_get_admin [0.067409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-70eab002-2d6d-4519-af9d-31b1e80fdcef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [0.082391s] ... 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-8919c633-75a1-4256-afc0-f904c9c7eb92
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.065581s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_member [0.064735s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-12c4ab6f-5ed1-4c4a-ad97-7597ce72fcfd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.166130s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-38f21d55-0b02-4521-b295-e72e10100369
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:58.294676+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.053537s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_lessee_member_can_put_boot_mode_state_change [0.089214s] ... 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-cbbf31d8-7cc7-4dee-a9bf-b5a4a56cd5ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.052164s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_observer [0.126657s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c4fca770-e7cb-4707-9487-821206bb3c87
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.081199s] ... 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-00e0a85c-dc30-4437-bd02-6a340c0ab172
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.050160s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.143036s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ac3d201-4791-46a4-8bdd-407295061f01
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:58.465886+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.045806s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_post_admin [0.091220s] ... 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-2e8fc475-327e-483f-bcf1-174ddeea7433
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_008_nodes_get_node_reader [0.097065s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af60f754-4b5c-4666-afec-9a1dec7989d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:58.604229+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_reader_cannot_put_boot_mode_state_change [0.130022s] ... 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-7f74bc78-60c7-4ed5-98c5-33a2f31319b0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.109914s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_node_other_admin ... SKIPPED: Not implemented yet
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_third_party_admin_cannot_put_boot_mode_state_change [0.072679s] ... 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-298bbc12-f323-4ac8-a4ea-e5f2c30781aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.075614s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.104743s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-708a2857-9112-4263-af74-05e66cde0167
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "c0aa7746-c059-41d9-bc8b-269799338a19", "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.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.058002s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.118851s] ... 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-126c1050-325c-47ae-afc1-d813647a9dbf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.063890s] ... ok
{2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.053236s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.132581s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-912ade6e-933e-4dee-9121-5d1133401b6f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "2f335aec-512d-4733-a8b0-92d31de09ba6", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_member [0.368239s] ... 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-42100c17-f396-4cdf-b924-29970ac76efa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_012_nodes_get_service_project [0.064829s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1d8ee324-3898-48b2-9850-ecf86bc51843
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "b0b7a4ef-c1ed-4f90-9fdc-fda701af65cf", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_owner_manager_can_put_secure_boot_state_change [0.154883s] ... 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-558fe0ca-81bb-4642-b820-d9337583ee71
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.077946s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_observer [0.088408s] ... 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-c9a2c9c9-07de-4ed0-bf69-3732b4618656
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.076943s] ... 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-196e6ac1-c852-4ce4-8fa1-c55eabbfff1d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.073749s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_volume_connector_id_get_admin [0.097961s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-395811eb-3776-4f7e-ab4c-79af86f02911
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.065378s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.071871s] ... 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-8fa6a70a-dc3f-481d-85a9-37727a654a20
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [0.157168s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c7d407f9-a6a7-44bc-b1f3-d85f80e70ba4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": []}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.055601s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.069892s] ... 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-831e714c-c495-4aed-961c-e7a2558fe3f7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.044090s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_member [0.130048s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e37095e4-31c2-47e1-ae3a-11bbb13004cf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.043080s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.150056s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0a0ff938-0515-44a1-b344-a7b30d63be0d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_observer [0.068953s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ac9834df-79f6-4351-8dbe-1e9e5edd69c0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.123821s] ... 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-8e9c40fe-3f8f-46df-9e6b-c22f52011c44
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach [0.061706s] ... 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.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_patch_admin [0.069317s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-6017b56d-5432-413d-baf6-f028f2ec4c70
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.079314s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.073105s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d28dee49-a569-4254-b5df-da76cf3ebd3d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:59.432699+00:00", "updated_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-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-03-28T10:18:59.434104+00:00", "updated_at": "2025-03-28T10:18:59.437902+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-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": "63b6cbb9-61e0-4241-a9d3-5ee83a9de349", "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": "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, "secure_boot": null, "service_step": {}, "shard": null, "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": "63b6cbb9-61e0-4241-a9d3-5ee83a9de349", "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-03-28T10:18:59.455169+00:00", "updated_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/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11
    /portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_153_owner_reader_cannot_put_secure_boot_state_change [0.112028s] ... 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-e77be90b-c2e3-4bd7-a0ab-993c8479ae1b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.070249s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1169cabe-5451-47b6-983a-1ffe5f5c02f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:59.507001+00:00", "updated_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-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-03-28T10:18:59.508302+00:00", "updated_at": "2025-03-28T10:18:59.511728+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-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": "e4ceae5e-6d3f-45e7-a040-9b9423c98254", "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": "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, "secure_boot": null, "service_step": {}, "shard": null, "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": "e4ceae5e-6d3f-45e7-a040-9b9423c98254", "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-03-28T10:18:59.528664+00:00", "updated_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/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11
    /portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.092974s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.072687s] ... 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-f64c5e2a-2a13-41a8-be4f-77953b969baa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_member [0.134380s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-b450e00e-e50a-4706-a034-edfd659de8a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.070466s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.085351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f2190570-941c-4e9f-9187-5376aaaece4f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:59.579632+00:00", "updated_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-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-03-28T10:18:59.580906+00:00", "updated_at": "2025-03-28T10:18:59.584238+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-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": "4065dcdd-b267-40c3-a3f5-7b3c880cc17c", "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": "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, "secure_boot": null, "service_step": {}, "shard": null, "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": "4065dcdd-b267-40c3-a3f5-7b3c880cc17c", "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-03-28T10:18:59.599867+00:00", "updated_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/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11
    /portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [0.072406s] ... 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-54363f12-85f4-4906-bb94-9414fead72bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.036285s] ... ok
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_drain_has_reserved [0.024633s] ... ok
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.021911s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.088204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d65bf38a-06f7-4806-a277-107e7ea3a523
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:59.682642+00:00", "updated_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-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-03-28T10:18:59.683974+00:00", "updated_at": "2025-03-28T10:18:59.687381+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-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": "7e642473-88ec-48f0-b7be-0fe830dd10da", "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": "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, "secure_boot": null, "service_step": {}, "shard": null, "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": "7e642473-88ec-48f0-b7be-0fe830dd10da", "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-03-28T10:18:59.704155+00:00", "updated_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/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11
    /portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start [0.031459s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_observer [0.156281s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-5fa98191-4cc7-47be-a171-a938af9318b9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_owner_admin_can_change_provision_state [0.119469s] ... 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-46b8c387-4d73-4304-af97-e6438fe47a39
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_failure [0.034672s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.068577s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5fb3a80b-3ab0-49b5-bdf7-77bef4fff05f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:59.755434+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_no_rpc [0.033613s] ... ok
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.023790s] ... ok
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.022175s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.071229s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4ff6d11c-a2b2-422f-ba43-74706bf2be45
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:59.827953+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_has_reserved [0.023088s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin [0.141378s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0f6345af-cd64-4e13-9ea9-49ac7e189d3c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_instant [0.024190s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.143061s] ... 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-e31cd085-4c49-42c2-8f7d-d058194344e1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.023483s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.068941s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bdc1e0b1-4b07-4801-95db-a6f75b28433b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-03-28T10:18:59.896975+00:00", "updated_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-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits [0.022450s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.022859s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.021668s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_owner_member_can_change_provision_state [0.093045s] ... 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-23817550-b7ed-40d8-9d18-696a9a33ce33
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.022421s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.037539s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_member [0.145042s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-339ee375-7437-4e21-acc7-d187e3d02ee7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.120337s] ... 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-98b92975-c532-4ca8-9ddd-107febb06fa6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.079457s] ... 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-fc40a937-c217-4c84-a5c5-70471620627d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.047565s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer [0.091259s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c00323eb-ce66-46ff-a09c-fc08e8383310
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.099096s] ... 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-89fc68dc-25b9-4835-921b-843ca32c3fc5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode [0.067111s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_targets_get_admin [0.059891s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9b37e593-32f2-437c-85ee-e2d2ad31eea7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.046376s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.130814s] ... 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-7130e90d-434d-43f6-b2dc-ea1b7743d6c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.099431s] ... 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-669ebd75-0211-4a28-8189-5d491997efc6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot [0.054947s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_member [0.061808s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-937d1c02-be98-49d0-8ae7-2a0256dfc7ca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.045985s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_observer [0.061275s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-517a2acd-9577-4ca8-a9fd-6bdd227aa336
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_node_ident_patch_member [0.095628s] ... 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-6c82d907-6fb1-4d6e-b8fa-9aa81e22f0ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_member_cannot_change_provision_state [0.131775s] ... 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-c15ebe1d-1817-430a-9179-90066f7f4798
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.069698s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin [0.069171s] ... 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-4ebc59e0-431c-4c83-b963-489b83f8fabb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.044107s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_third_party_admin_cannot_change_provision_state [0.067647s] ... 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-a6ed8d1d-01cb-4315-a411-1bd0b6806956
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.049532s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member [0.080335s] ... 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-edda1e0d-3c81-40dc-92ca-7689d9c0960a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.065979s] ... 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-cd4db99c-b439-4846-bc30-d0cf359e09a6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.050054s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.033860s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.075634s] ... 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-87a0c874-cb4d-457e-8224-7db59bb657df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.034881s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.025772s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_observer [0.139307s] ... 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-a251a23f-5c35-4f52-9863-b55e60f67e5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.026333s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.022518s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.022104s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_owner_admin_can_set_raid_config [0.113177s] ... 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-5de43a15-9ee6-4c95-92a9-256c3805d04d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.351283s] ... 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-5c23bfdf-b21d-4ad5-ae4a-63fcfd8feae0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.024022s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.022968s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.022169s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_manager_can_set_raid_config [0.068654s] ... 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-d69a68a7-35a8-48a8-9cfc-83bd447f1c9a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_volume_target_id_get_admin [0.147266s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8f1f8529-927a-41ca-b050-c6167e1930d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_service [0.052121s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_cannot_set_raid_config [0.066165s] ... 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-16126458-2a33-4bd6-bbad-3511ad0e4d1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_node_ident_patch_service_project [0.134321s] ... 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-c7939877-c3f7-45f7-87d6-079d93ba9484
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.046518s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member [0.107857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5bf753cd-ce44-4dac-b66d-9f5e0da1b294
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.064719s] ... 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-3e7da967-ef8b-48da-922d-a3f634f67991
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.053517s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_manager_cannot_set_raid_config [0.112305s] ... 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-867a0b28-b314-45a5-8b20-2f8e451d4b37
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer [0.067266s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cd251cd3-d65c-4dd7-9114-f681a7d335ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.062401s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-38fd8c55-b2c9-464b-afc8-3ae40c020b70
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.053186s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.022331s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.024350s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_patch_admin [0.068264s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-66996a1b-9e78-4c33-baf7-56f9bcba9d02
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.023536s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.021384s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.114433s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-68911965-9af7-4e19-899c-8d324196e5c0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.023643s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_raid_config [0.155406s] ... 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-ff24b01a-a78e-43de-997d-9ae3c389c4c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_member [0.087672s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-a9177858-46ec-4dda-8481-ef963fffbfdc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state [0.024297s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.022036s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.066124s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7d94e54c-5cf3-4f60-8dd4-f2d1999a52e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token [0.023156s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer [0.095252s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-cd1baeb9-6f22-4117-9ce7-4b30b1d49be3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.063791s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-039c527f-fc37-403f-963e-d4b06a3a1e9d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_lessee_member_cannot_set_raid_config [0.155087s] ... 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-d8f665da-3105-4550-b262-2f86bdfcb834
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin [0.068731s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6a1dcded-1854-41c7-ab2f-9bc85f67d682
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.073035s] ... 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-204ea98e-cc67-4212-9dfa-b0dae7c4f2e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_third_party_admin_cannot_set_raid_config [0.086422s] ... 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-c896c5a8-7554-4ae1-a47b-4ad67aa7f03e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_member [0.065262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-52674897-e95b-4f45-8173-1bc4aa27d057
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.060849s] ... 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-2e619307-cac4-446c-b9d6-45761d41d86f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer [0.066261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a403859f-da7a-4709-8734-e617ebd111b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.070973s] ... 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-51a0cfb4-c19a-4e19-88c9-333d95cf51ca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_service_cannot_set_raid_config [0.079736s] ... 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-78da3563-eaa0-455d-8c51-3807497ddd9e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_nodes_volume_get_admin [0.077195s] ... 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-84f9cda8-19ab-4ed6-a7c9-5b96716ab7c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_owner_admin_can_get_console [0.075473s] ... 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-cec009d0-9fcf-4f04-a7d1-10b9976af2e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.095919s] ... 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-8ee8fde8-0688-42e4-8937-be0c65910656
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.063213s] ... 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-f6224002-a5ec-4e46-90e4-6630646bb0c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_owner_manager_can_get_console [0.091466s] ... 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-f328bcc4-01e2-453a-bc65-034332208063
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_member [0.137349s] ... 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-ba333f16-9fe0-4345-8f91-8b1b8efd1b83
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.483249s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.067246s] ... 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-c35009eb-d1e4-4d0c-b918-5b857be7bd6a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.053962s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_owner_service_can_get_console [0.113174s] ... 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-403e68c1-7eb1-4b22-b3cc-f902786a68a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_maintenance_put_member [0.080051s] ... 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-d19e1791-4049-4802-ab7c-55db9c41b1c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.047592s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_observer [0.135553s] ... 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-c04fc3f0-3f75-4c0f-a7a7-c3a4838fec7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.053909s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_lessee_admin_cannot_get_console [0.110333s] ... 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-33b015e6-11b4-40bc-aa00-7a1db60a0cbf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.099437s] ... 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-cf72d972-2138-4aef-8a03-e824eee90d57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.047537s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.057392s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_maintenance_delete_admin [0.088461s] ... 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-f80d5897-13f4-45d0-a553-2db26a61bb9f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_connectors_get_admin [0.137104s] ... 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-8caa2df7-6adc-4f79-8099-ea9a43cc44ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.059550s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.068995s] ... 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-76432edf-68df-4ba3-a14b-0cd7166aac0b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.054765s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member [0.129341s] ... 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-11373057-8fd6-4653-90ad-434319082087
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_044_nodes_maintenance_delete_reader [0.069384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3ec5b57b-1e6e-42f2-ab82-99ef0b491fe2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.061597s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer [0.064967s] ... 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-6d574e22-d31b-4462-bd78-a79d458b9821
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.057138s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin [0.065560s] ... 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-6e96e015-de76-47a8-b331-25dddea971cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.054030s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.144558s] ... 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-0f10853b-0f30-41d6-8792-9bdb22b0c10f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_177_lessee_manager_cannot_get_console [0.429026s] ... 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-b5e25b30-f3d3-497f-a1b9-bc47ec5ddd6e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.052529s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_member [0.066075s] ... 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-4fc8c5c8-3dc1-4107-8e00-4223c6881684
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token [0.042161s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer [0.063762s] ... 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-72b5d6ed-2485-4fba-916e-2c3514b70b65
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.037214s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.143743s] ... 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-183b0a10-8c3a-42a2-8134-17e2e0647adc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_drivers_get_admin [0.059009s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-0bf9acb3-f7a0-44dd-b011-8636bed99a3a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_owner_member_can_get_console [0.144388s] ... 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-ebd5427e-f84f-43bf-bf9b-e362faf2d537
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.062114s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_member [0.059708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-48ce39e8-60bf-4efe-b114-03926947cc13
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_rpcapi.RPCAPITestCase.test_local_call [0.045788s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer [0.057564s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6b631e0b-5d82-4114-b247-1e66472eeb97
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.146950s] ... 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-a3926dca-401d-4b28-aa2e-f48306a08b9d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception [0.056627s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_179_lessee_member_cannot_get_console [0.130196s] ... 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-6e849d31-fdf4-48a2-9ba8-5fb93309da03
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch [0.030396s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled [0.020319s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled [0.019029s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled [0.019952s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast [0.020226s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error [0.024761s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.154142s] ... 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-ba30a192-d524-4e2c-9519-1fca3995d013
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.022388s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_owner_reader_cannot_get_console [0.153427s] ... 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-e4f3c2e0-ea6e-4a97-815f-d6cb9ec72a5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.021091s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.021760s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.022062s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.120343s] ... 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-cc652957-8af9-4471-bfe3-65c258a32ef1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.042050s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_lessee_reader_cannot_get_console [0.136101s] ... 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-e8ebb060-344e-4fb6-b621-8de7061dae0e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.043121s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.069517s] ... 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-75a6bf09-d697-4ae7-b3ff-3c7dfe7668e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.049132s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_management_boot_device_supported_get_admin [0.078233s] ... 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-23e16f26-b62f-465e-a244-57995f506c39
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.044686s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_third_party_admin_cannot_get_console [0.133112s] ... 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-1810c81e-d7a1-4310-a5b5-1793b2fe0e30
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_driver_name_get_admin [0.455940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e0959394-6b09-471f-8d5a-929cd9a2b4c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.060002s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member [0.060175s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-aac92b82-23e4-41b2-a2a9-e74f46b8807b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.036445s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_management_boot_device_supported_get_member [0.144989s] ... 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-cc1a7fbf-552e-48e1-bb3b-854544bf82a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_observer [0.073435s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-095d5fc2-0c32-4525-86ff-383a3636d23f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_admin_can_set_console [0.143254s] ... 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-e5b90df8-88ba-4719-9560-c8c5de207384
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.056294s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.071418s] ... 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-268934ee-5d73-4f01-a981-1455ee0af21d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.047418s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state [0.048981s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.069338s] ... 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-1ee5e5e0-96c4-469a-aebf-c1b6ea0ae9a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_properties_get_admin [0.127427s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a65b81d5-52f2-4088-a5a0-705352c392fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_manager_can_set_console [0.136953s] ... 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-95ba1b95-6483-4ae9-9535-aa4e55905c04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.028917s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.022317s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.023656s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.022934s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.023441s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.139941s] ... 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-d15ad844-52e9-4346-9feb-f59d63a51d5b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.025184s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member [0.149983s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2ca830ee-7da0-46f0-8dee-0321485637c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_set_console [0.140843s] ... 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-1f665fb8-5e81-4819-a980-8a10a48c0b5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.023816s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.047844s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer [0.141527s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6233db69-2354-4ecd-9d02-bc5722057dfd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.077811s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_set_console [0.165184s] ... 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-8a8c57ab-2793-40cb-b6e9-7e1e478f771a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.186731s] ... 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-de60da2c-5c2f-4af7-81f8-12456275d35e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.068525s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_raid_logical_disk_properties_get_admin [0.131239s] ... 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-29865c1f-8827-4dca-a8de-a890194b7a2a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.074328s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_owner_member_can_set_console [0.150850s] ... 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-5a16d01a-e4a6-41ac-931a-1ae293cfe051
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.196101s] ... 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-31e3e447-9abc-40f2-961f-16f91e8152b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_member [0.162263s] ... 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-bea030c6-1782-4963-afde-aaed84c5b0ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.131005s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_get_member [0.124018s] ... 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-0523ea23-592a-4c39-af7d-19e1763016eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_set_console [0.212770s] ... 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-0a4ae0a5-02b9-47a4-9989-4050aa13cbb9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.192946s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_observer [0.199745s] ... 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-8288058a-764a-4762-91c0-65303e8af40f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_service_can_set_console [0.171684s] ... 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-981b55af-08cb-489d-b2ac-b907d647359c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_get_reader [0.233295s] ... 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-83574975-c2b1-4301-9412-1c9a2d9ef452
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.140156s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_vendor_passthru_methods_get_admin [0.145607s] ... 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-e412e886-f53c-4df1-86d0-7893c79fc37c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_service_cannot_set_console [0.182254s] ... 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-36fc4365-a103-4263-a76e-56fdef4131fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_member [0.176450s] ... 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-099bb9b2-0ef8-4440-9215-313f15d57f93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_060_nodes_states_power_put_admin [0.246602s] ... 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-133d74d1-c5e1-49bc-9812-b178c7cfeffc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.231001s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_owner_admin_cannot_get_vendor_passthru_methods [0.141048s] ... 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-96be6855-d995-41c7-a963-b71541e54f68
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_power_put_member [0.159217s] ... 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-0792aa65-05d9-45b5-8dd3-14e02b7b717f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_observer [0.200304s] ... 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-5ed08cf8-4213-49b1-988e-dbf9a5c6ec98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_manager_cannot_get_vendor_passthru_methods [0.112156s] ... 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-3df5e74b-1632-461e-aadd-cce50fe6d7ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.198210s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.093395s] ... 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-8f00a563-0ff4-4023-884f-55550d8a0492
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_service_cannot_get_vendor_passthru_methods [0.087216s] ... 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-a5772971-fb7f-4a9f-bc70-185ef697708f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_get_admin [0.129449s] ... 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-07b92e28-4785-4484-b94d-4d1052a532f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_063_nodes_states_boot_mode_put_admin [0.066430s] ... 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-335e5f5a-b21f-4b3b-a05d-89d052a76b17
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.170803s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_owner_member_cannot_get_vendor_passthru_methods [0.106367s] ... 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-031a0f0a-c25a-4f41-bcc7-dc76cc2b5541
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member [0.093023s] ... 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-dc58bbfa-ca4c-4a1e-b79b-193d984f0bfa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_064_nodes_states_boot_mode_put_member [0.080441s] ... 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-26815246-af9e-4f09-a478-ac649ca7dc0c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_owner_reader_cannot_get_vendor_passthru_methods [0.072815s] ... 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-394815b6-0b15-4d9d-81f0-53371b1041f9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.095197s] ... 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-9616fb00-4f9d-4e57-a158-8ca5f0cfcb51
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer [0.106543s] ... 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-79d38ae3-ea64-4abd-a3c5-cae3ad9287a4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service [0.164354s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_admin_cannot_get_vendor_passthru_methods [0.116041s] ... 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-218b5983-6daa-4580-bde5-2a7cf1fafb85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin [0.082941s] ... 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-e518dbc4-309a-4063-9e44-aaef0f4f904c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member [0.059961s] ... 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-f79e6425-676c-4242-869b-95eb291c8fc6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_lessee_manager_cannot_get_vendor_passthru_methods [0.085662s] ... 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-0b0f4b79-c6f9-454e-98ae-5166e3bf924c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.167428s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_observer [0.076183s] ... 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-c6b3aed9-af4c-4eef-bfa4-aeee7855e0d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_lessee_member_cannot_get_vendor_passthru_methods [0.096011s] ... 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-3d937eac-6797-4ce9-9100-8ed272278454
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_put_admin [0.057953s] ... 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-94aa4bb2-9298-4dea-b021-a23ec8dc7e39
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_066_nodes_states_secure_boot_put_admin [0.283858s] ... 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-d0066243-da15-415e-8649-64c8ab3af604
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_member [0.071877s] ... 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-24eb0795-5bf9-455b-bfa3-2a037cba2b16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_lessee_reader_cannot_get_vendor_passthru_methods [0.088069s] ... 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-d470ea39-876e-4ce6-944b-669989cc2305
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.089202s] ... 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-7e85d23d-5ded-43a9-90aa-0fd7ad03a9ca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_power_validate_fail [0.169718s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_observer [0.059200s] ... 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-e9b523da-3eba-4de9-b216-e0216fe6b32a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_admin_cannot_get_vendor_passthru [0.070592s] ... 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-21c5f246-5af1-4c4b-8ccd-29de75fc3d15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.101071s] ... 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-9cfd3f57-1dad-4cae-8f8f-5e60846acefd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_owner_manager_cannot_get_vendor_passthru [0.073745s] ... 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-f2a73486-7113-4267-9324-c7b79e315ec1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.114641s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_owner_service_cannot_get_vendor_passthru [0.078932s] ... 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-f4650c0d-a73a-41b6-8769-f0720bef2313
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.137010s] ... 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-ebe41186-748c-4860-a8fa-49513cf1af91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.118408s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_nodes_bios_get_admin [0.085141s] ... 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-60abe713-507a-459d-9713-c44414a81693
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_owner_member_cannot_get_vendor_passthru [0.071375s] ... 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-258bfcd0-0514-4221-8be6-592aa8adf3c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_member [0.064114s] ... 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-41474ea0-6625-4e2c-8bae-a59bdc6c8e54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.094838s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_owner_reader_cannot_get_vendor_passthru [0.089620s] ... 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-5e945b4b-df31-4534-befc-32467b5cf463
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.138423s] ... 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-616fe58a-d5ac-4f4f-b012-663cf8079c28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_observer [0.076721s] ... 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-aa3e6b88-f465-4c79-bb35-bd31f2843c2a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru [0.073637s] ... 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-dab021cf-9ef1-431e-9d83-f91c1c490496
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.111928s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_bios_setting_get_admin [0.063863s] ... 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-6722936a-0920-442e-8b5f-c89fea59729d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_071_nodes_states_provision_put_reader [0.135284s] ... 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-3beb16c8-279d-4545-9958-0b0d35d8816f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_member [0.084118s] ... 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-0dda70c1-b3cd-45ed-aec5-2f8b0b6c8da7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_lessee_manager_cannot_get_vendor_passthru [0.104027s] ... 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-5a2f1185-29d9-4c70-8b3f-6617d8c7f0d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_observer [0.061850s] ... 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-5fc7c19c-ad95-4f0a-80d5-2d66dedc316e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.165546s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_states_provision_put_service [0.134860s] ... 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-f834ca21-1f65-433a-8a69-54f48a6e32c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_conductors_get_admin [0.069714s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-eea31e64-9841-438f-916d-b4409134ad22
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_lessee_member_cannot_get_vendor_passthru [0.129006s] ... 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-2e74cc2b-d27d-4edd-9df4-2d914d12f56a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_member [0.060262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5a719edc-a8b0-4a67-b01c-5733c30e5c84
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_073_nodes_states_raid_put_admin [0.106839s] ... 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-6938a73d-c210-474e-bb5e-e9c1b72d281d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_fail [0.172021s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_observer [0.078968s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-009181b8-4588-4fec-ba5f-d865da1d265d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_lessee_reader_cannot_get_vendor_passthru [0.166467s] ... 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-db459e79-dca6-4999-bffc-d47f62e2ae9c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_hostname_get_admin [0.058612s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d0ed387c-9df0-42d2-9cf6-fa0b5729b7ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_074_nodes_states_raid_put_member [0.105378s] ... 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-9b369804-c07d-4a9a-8169-843a26af8c06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_wait [0.134553s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_member [0.086069s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3380f95a-a324-427f-a162-661a307acddd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_owner_admin_cannot_post_vendor_passthru [0.146937s] ... 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-a377a1a2-516d-44f4-8a88-6583ee00da1e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_observer [0.062165s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a269eba5-c87b-4de8-ba56-c222128eada9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_075_nodes_states_raid_put_reader [0.148346s] ... 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-84cf7995-0f7a-426a-ad34-d1a2baac5d54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_allocations_post_admin [0.078777s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ba85c9a0-b36e-4e75-9faa-e80ebaf86f91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.087939s] ... 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-2ab61b35-0fd3-41f0-b52e-85d94712dceb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward.
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.236451s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_owner_manager_cannot_post_vendor_passthru [0.163518s] ... 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-e878b7f3-aa5e-4dcd-bcb8-eb33e0a00b4c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.106700s] ... 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-dd429b18-55ed-484b-8a50-f9d02c1b5e6a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_248_allocations_post_observer [0.071780s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c94491be-7df0-4307-99f0-b7745eae0bfc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.091018s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_get_admin [0.073223s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b4b46ab6-960f-406f-9399-6675e92d4272
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_owner_service_cannot_post_vendor_passthru [0.146101s] ... 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-aacdaa78-b7d4-4401-aa5a-74d77b520b05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_member [0.066205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-93365e55-4822-4a16-8270-12439b45c5ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_078_nodes_states_console_get_reader [0.155719s] ... 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-73cb64b8-1265-42cd-ac34-0036ede5d8e1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_observer [0.082871s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c73b8837-635e-44df-a81f-1dc59b6daeaa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_owner_member_cannot_post_vendor_passthru [0.151079s] ... 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-3bb8a2fe-be0d-4da4-bc12-82ea1754b9ba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.153123s] ... 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-c3d6a535-3f18-4c08-8caf-96e1d3f445b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_allocation_id_get_admin [0.136375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/cea7671a-ae5b-46c0-aa52-1c4e0994a345 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cc922d38-9ccf-4e15-9db9-99b190d862c0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation cea7671a-ae5b-46c0-aa52-1c4e0994a345 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.071389s] ... 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-66abea6a-9c1c-4324-b17a-567fc6c45a50
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_reader_cannot_post_vendor_passthru [0.144072s] ... 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-905b983f-d078-491b-89bc-28cc0cdeb0a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.074985s] ... 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-65585d86-51e9-4f8f-b7ea-393b929060ba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_member [0.113018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/42170e55-6cf5-4ca9-a5d6-c7cbd4366ebe WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2ff905ca-be80-4aad-9d27-cdeade11c10b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 42170e55-6cf5-4ca9-a5d6-c7cbd4366ebe could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.458884s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.069735s] ... 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-d36c8ba0-6b06-4969-add7-ba79992fc0ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_observer [0.111448s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/85d67d0f-ffc5-4720-a881-1fa8b807b1a6 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6b12ebf6-e213-4257-bee5-befc39de2005
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 85d67d0f-ffc5-4720-a881-1fa8b807b1a6 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.080140s] ... 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-fcd81142-539d-461e-9cb7-c1caf17fa72c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.063834s] ... 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-608940e3-7142-496d-9fbc-5002272e892c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.214338s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.080825s] ... 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-9f48eeab-2c25-4d59-8af9-a4a2cce512a6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_lessee_admin_cannot_post_vendor_passthru [0.351428s] ... 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-332a5f67-2860-4340-9f3a-2cb83e8a36fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.076163s] ... 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-c6dd66ee-5dc2-4e33-9829-84caf048c24e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_lessee_manager_cannot_post_vendor_passthru [0.091735s] ... 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-8f67636b-d536-4a3d-a776-10fa67644b2b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.090129s] ... 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-8ec64b0e-4c64-4ecc-80ec-7a55ac70a02a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_patch_admin [0.339188s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/77d24e34-1b57-47d6-ba07-ce9beecfb07d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-207cd88b-af2a-44e7-9890-7489389266d7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 77d24e34-1b57-47d6-ba07-ce9beecfb07d could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.255743s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_lessee_member_cannot_post_vendor_passthru [0.111049s] ... 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-966689b3-2f5f-4f11-a75e-a9ae875c8462
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.079074s] ... 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-14e1cf2d-e777-4019-9d01-d899082d722e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_member [0.081939s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/07a1bd42-e52f-451a-ae08-730301df47a4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-673968ad-2a4b-468c-a80a-51bdc598ff64
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 07a1bd42-e52f-451a-ae08-730301df47a4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.077564s] ... 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-743bab07-e7e9-4c83-b15d-776c96aa5f0e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_observer [0.131421s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/a979e0ff-058e-4f02-bc69-a40d88721753 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-89eb903a-313f-4e3a-a7f4-679523b88dd4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a979e0ff-058e-4f02-bc69-a40d88721753 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.094562s] ... 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-e7e59ec1-102d-4088-9ed3-60e19aec97cc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.267256s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_reader_cannot_post_vendor_passthru [0.239228s] ... 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-8c6310cb-e340-4086-8821-b92252813aef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_delete_admin [0.106150s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/bc8aad19-72fb-44bf-a3d4-e50143333b6d GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-529648f3-995e-4b8c-be15-892602e0774b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation bc8aad19-72fb-44bf-a3d4-e50143333b6d could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.079045s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.126094s] ... 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-332fefbf-1de6-4a49-a100-62ab928c3f86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.068761s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_owner_admin_cannot_put_vendor_passthru [0.146244s] ... 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-eef5f71e-348d-4cf7-b1a8-57094f4d9cbd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_vendor_passthru_post_reader [0.068756s] ... 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-6c24a41f-c23f-4511-bddc-7384a2254fdc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_member [0.141542s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/884ece7f-a728-40e8-840f-d226e064a6bd GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-273c4be2-e66d-4e64-b455-4e657ee3ea42
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 884ece7f-a728-40e8-840f-d226e064a6bd could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.105318s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.090459s] ... 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-21bdc653-1420-42fd-8ca3-2344f800482b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_observer [0.110552s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/293bf4f8-89d7-42da-8408-b36e1c0ed6ca GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-96f62442-7dc0-4f24-8ec1-bed6c23cf53f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 293bf4f8-89d7-42da-8408-b36e1c0ed6ca could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_owner_manager_cannot_put_vendor_passthru [0.138429s] ... 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-15309a63-a974-4a0b-95b0-006e1af2efae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_vendor_passthru_put_member [0.080536s] ... 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-3a05310e-2504-48f2-acf7-92422972cfc3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.096464s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_261_nodes_allocation_get_admin [0.129999s] ... 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-2d2b0cf2-8cd9-4ea2-b3c0-97e89d2d4f64
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_put_vendor_passthru [0.134902s] ... 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-e8006620-49d1-4b6d-b93c-9066f8999d23
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_vendor_passthru_put_reader [0.110620s] ... 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-9e7a70b0-73da-4a62-bc8a-28ca73eada36
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.119850s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_member [0.069822s] ... 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-c2354b76-95ca-4c7e-8622-74164ca5f285
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_member_cannot_put_vendor_passthru [0.078299s] ... 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-7ee6798b-dad7-4cee-aa1b-a28009f2f06a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.147046s] ... 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-ee589daf-250c-4731-bee9-27b6960440ef
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_observer [0.094762s] ... 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-55a5da9f-f359-4ab5-8e9b-485ffb98271c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.119931s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_put_vendor_passthru [0.080594s] ... 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-a66b3e82-4fe2-48d9-8eb9-754d934aebf8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_delete_admin [0.076314s] ... 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-c53ad1a3-9b84-423e-8f93-eeb9c3120461
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_lessee_admin_cannot_put_vendor_passthru [0.102523s] ... 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-e6821ea3-655a-4bec-93bc-42460cec1387
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.132705s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_member [0.072420s] ... 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-8f7e7e0f-54de-42ca-9d8d-b5af28c1484a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.170532s] ... 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-92889779-3e71-44e7-b6ee-95484eb90d4e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_put_vendor_passthru [0.083635s] ... 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-7f4de147-5dd1-4277-a39d-d80a85918ec8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_observer [0.081117s] ... 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-ba7e8653-316e-42cb-9ca4-7d2d537181e3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.126830s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_lessee_member_cannot_put_vendor_passthru [0.086002s] ... 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-9b8cc9a8-92d7-4a97-959a-c58454d93213
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_deploy_templates_post_admin [0.080441s] ... 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-1c5f6c46-d56c-4f13-834d-f6324aa7c8bb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.149900s] ... 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-5e37244e-97f1-437c-ab59-1024dd884a06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_lessee_reader_cannot_put_vendor_passthru [0.081786s] ... 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-de50d67e-cc85-412b-9f17-4a2e2736711c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_member [0.097783s] ... 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-3798940e-0ec3-4d86-8654-1a084fb996fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.133730s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_owner_admin_cannot_delete_vendor_passthru [0.069882s] ... 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-29753c53-ddd0-42b1-be09-60dda6b567ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.156237s] ... 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-6f1fba5a-b6b5-407e-8dbc-1895701a3678
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"traits": ["trait1"]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_observer [0.086429s] ... 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-306e2127-5030-4445-99ab-ace16ebff495
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_owner_manager_cannot_delete_vendor_passthru [0.087838s] ... 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-792e1fdf-1b45-4eb6-9447-260fa1722de2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.118030s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_get_admin [0.064832s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c71b7b30-8ab6-4da9-ae56-39e065361f15
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_229_owner_service_cannot_delete_vendor_passthru [0.074903s] ... 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-5837a0bc-436b-45c5-ae4e-0efce733ff5a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.146230s] ... 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-18a64772-8e5d-459a-a66c-e7622ad83338
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"traits": ["trait1"]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_member [0.084792s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fc46763d-d475-47d2-8497-da0cf5411966
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_owner_member_cannot_delete_vendor_passthru [0.073614s] ... 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-3bb0e04f-962b-476a-922d-9e6b80f3c539
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [0.144114s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [0.067585s] ... 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-a0f38131-c9de-4745-b3fb-d733ccd604f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"traits": ["trait1"]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_reader_cannot_delete_vendor_passthru [0.078768s] ... 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-527b3c72-6207-436c-adc7-7b150250f062
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_observer [0.121969s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b26eb070-b7c4-4e75-b198-17b6e7e7d136
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps [0.091942s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.089696s] ... 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-cfd8c183-9ee1-40d1-8619-b48839d3821b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_lessee_admin_cannot_delete_vendor_passthru [0.068298s] ... 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-090d636a-1290-436b-a7e3-4b18147e73dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.097027s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.100354s] ... 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-940d711a-590f-4b8e-ab06-6bee629d8c20
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_delete_vendor_passthru [0.071436s] ... 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-a39134f4-721a-40ae-a3eb-d760d1bafbfb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_deploy_template_id_get_admin [0.134208s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/708f6240-4403-4618-9f54-1bb24fce3674 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2e6ed717-7a94-43ef-8d41-96587dca419c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail [0.065497s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.067814s] ... 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-4a257954-df56-407e-bc56-8d13e07ec0f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_member_cannot_delete_vendor_passthru [0.075347s] ... 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-71482c41-f72c-4a1e-a849-1df3dc384b02
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.075989s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.083823s] ... 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-2a90b53c-3fe6-4207-8350-345395b4511e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_delete_vendor_passthru [0.081630s] ... 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-de7559d5-0c9c-49f4-a731-060aa533b3e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_member [0.134784s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/496ed314-b26e-48b8-9eb3-fbd83e654bbf WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7a18a77c-aef3-483a-acb9-720c62862754
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.084315s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_traits_delete_member [0.072533s] ... 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-3aed8b83-83f3-41d5-b9ab-c42a37bcec6a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_owner_reader_get_traits [0.082646s] ... 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-90f926f7-26be-4daf-9a91-755a7872ee98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"traits": []}
{2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted [0.080174s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_observer [0.137754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/0985d65f-e1af-4fce-ab99-969076ff6f60 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d80ce146-ab27-46a4-8bc7-a22e28a15467
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_lessee_reader_get_traits [0.070933s] ... 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-a981d41c-d19e-435e-9b8d-3197466731f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"traits": []}
{2} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step [0.112834s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_third_party_admin_cannot_get_traits [0.088975s] ... 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-d6b16025-427b-4554-963e-b99777ee3d3c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_patch_admin [0.133699s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/97365a41-e150-4511-ac89-fce36825a257 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-412d5f3c-da76-4b18-a706-db84277c93fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.089424s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_admin_can_put_traits [0.083646s] ... 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-bd61c03c-76a8-4bc6-aef1-21b1eac138af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.291170s] ... 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-e320afe2-6452-4d7d-962e-2093b4da702d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_manager_can_put_traits [0.084266s] ... 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-5176d05a-15af-43ed-b14a-ff53121e17d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.086624s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.068003s] ... 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-10dcea8c-5563-475f-821b-87ef26d6adb5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_member [0.137582s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2410ceb8-caaf-44b0-9b99-869411e5de6f WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2ad900df-8ec1-4168-abe7-35b674f9ffa8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScopedRequests.test_system_scoped_109_nodes_traits_trait_put_member [0.082415s] ... 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-a2dedbee-46c7-4431-8d57-b0ddd2cb4030
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_owner_service_can_put_traits [0.096340s] ... 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-b7ec1006-df63-4dae-83be-f82587c3fdce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.095634s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.042935s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.072514s] ... 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-a32aba90-a5d5-4a04-9597-dbc0a0cdc542
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_observer [0.147415s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/9fac5b6c-d27d-4781-868c-2bb418cda7c1 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-baa67bf1-7b51-4a0f-acd0-bb22d9945354
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_owner_member_cannot_put_traits [0.078943s] ... 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-76ebe274-744a-41f7-8136-0f11d8d81d42
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.054510s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.070553s] ... 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-16b3174a-dea6-4146-97ae-5bcc1610232d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.043788s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_admin_cannot_put_traits [0.071771s] ... 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-fa95339a-0fed-4ddd-8a2f-73dd8652d951
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.047694s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_delete_admin [0.142278s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/2db4010f-2022-4499-812d-a4615676f0c4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ec316d23-e22c-41a9-9d44-23e1628a0e96
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.075112s] ... 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-3582e211-2ffd-4c9d-8a7e-47952216a330
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_manager_cannot_put_traits [0.088688s] ... 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-92705cba-212b-428b-b9f9-c1490e20c318
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.047818s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.042665s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_nodes_traits_trait_delete_reader [0.070402s] ... 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-3baa4bd4-2e21-4032-9bf7-e4e01f1bdf04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_lessee_member_cannot_put_traits [0.073613s] ... 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-66506fd5-f63b-483b-b95d-d79ab4914cb0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.047424s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_member [0.133745s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/db384b0b-8c22-4e90-9ded-b6caf8459bb6 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-53021f85-cc9a-403b-8344-49dd01ce6c3f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.069619s] ... 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-e467b6b6-0e2a-4813-8cde-8a2a202a937b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.052519s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_third_party_admin_cannot_put_traits [0.087438s] ... 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-329f188e-0028-44bf-876c-4040db50ae7b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_nodes_vifs_get_member [0.069336s] ... 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-5372dc63-fd27-4c18-b44c-df381685d1f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.067017s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_owner_admin_can_delete_traits [0.071033s] ... 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-1cafc5e3-f3f6-4218-9ca5-6069eff6749f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_observer [0.141382s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/13ce8b27-0c8f-4b34-b5da-83748c33b25b GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a7e7420b-28d5-4e4c-ad6b-c9ef036c0aee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_nodes_vifs_get_reader [0.080064s] ... 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-2e03b0f9-583e-4e7b-a2b9-d67fe78f6e56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.075165s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_owner_manager_can_delete_traits [0.080509s] ... 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-d53b9fd4-ba6c-4e68-a917-77618f9c5db9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_nodes_vifs_get_service [0.062447s] ... 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-78b1d3a2-d931-4495-941d-8d291dbac308
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.068941s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_member_cannot_delete_traits [0.068854s] ... 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-6dd08205-9833-422a-8d53-fe2251c3f125
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.073244s] ... 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-04453797-86c2-4b42-b940-ea8f258fbf47
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.065144s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_chassis_post_admin [0.164710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-82d8e312-dde3-47a3-81e0-c40fc88e4615
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_lessee_admin_cannot_delete_traits [0.068400s] ... 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-a6bb3ace-a749-406e-86ae-4417e23eeb68
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.065202s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.077322s] ... 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-d24463f1-9a8e-4de5-9f37-e5199b93825b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.062353s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_member [0.141096s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-01faf1e9-d60a-4022-86d0-89da7425d8b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.061956s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.154776s] ... 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-c5a0b6a9-f31e-4408-b795-7edaedd7c87b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.064919s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_observer [0.114316s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f81511ac-d1d6-442a-8c01-7376fe882c85
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.053670s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.089607s] ... 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-746acb19-bf56-4f81-825d-1cd528bdf2f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_lessee_manager_cannot_delete_traits [0.287094s] ... 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-6322b23f-7673-4560-b73b-12935a4aae10
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.062078s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_get_admin [0.120088s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-262d6031-bfd3-4a64-a7cd-78149076136b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_122_nodes_vifs_post_service_project [0.074907s] ... 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-0e3c0313-9223-4d1d-a164-10f66f8d56f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_lessee_member_cannot_delete_traits [0.072849s] ... 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-1f87201a-d840-4dc7-a1f6-a83b0638a5f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.047263s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.029092s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.030997s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_third_party_admin_cannot_delete_traits [0.088387s] ... 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-3d940fe7-b12b-4912-8cab-c85cd2cbaf30
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.105786s] ... 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-732cf96e-3aca-40a1-91d7-8ad0f8bee433
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.030785s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_member [0.145125s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-d06f3c5c-09c9-4cff-9461-e9a8f9b3b94d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.027857s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.025013s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_owner_admin_can_put_custom_traits [0.088945s] ... 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-ecdbda63-cf84-4113-860e-6d388488c132
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.026783s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.034993s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.027978s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.163010s] ... 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-7e988d10-f7de-45dd-a84f-bcaf8b09806d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_owner_manager_can_put_custom_traits [0.095969s] ... 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-284b5fc6-c00f-419f-a1cf-9aa349dc56ae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_observer [0.143710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a3da15d3-95a8-4d0d-9a4f-37468bb88db2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.029109s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.027826s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.028467s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_owner_member_cannot_put_custom_traits [0.079051s] ... 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-69522af2-a4c4-49d0-802a-fa5bb90628fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.033490s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.027187s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_detail_get_admin [0.138644s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-31c8cc69-7f9a-424e-a79a-208a357d8bcb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_125_nodes_vifs_node_vif_ident_delete_reader [0.162075s] ... 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-8334a696-30b2-40f1-91e1-7986e67dba32
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.027820s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_257_lessee_admin_cannot_put_custom_traits [0.074189s] ... 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-0cfccd0e-7ba8-4e58-96ab-bd95dd6a609d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.027184s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.038614s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_258_lessee_manager_cannot_put_custom_traits [0.072537s] ... 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-61a737df-7eef-4456-83cf-3b064f8a298d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_member [0.156798s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e5988e8d-5c33-47b4-b17d-4da887dcad2b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_259_lessee_member_cannot_put_custom_traits [0.071117s] ... 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-6fc6995d-ae74-4dbd-a4e0-74960c805ea7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_nodes_vifs_node_vif_ident_delete_service [0.159257s] ... 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-7beddfad-5a9f-412a-aeb4-6cb8470472ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_third_party_admin_cannot_put_custom_traits [0.081263s] ... 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-a71e823f-3301-4c88-b32b-471b72926b28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_observer [0.133274s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-db9fff00-50c5-4f05-a41d-d767e9ff013e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.225034s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_261_owner_reader_get_vifs [0.074394s] ... 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-d0623ef1-6b9e-4aaf-99a3-31c01e138c93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.052602s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_reader_get_vifs [0.074695s] ... 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-b37d4eae-e486-48a7-be84-9b295cd6fb89
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present [0.041992s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_nodes_management_indicators_component_get_allow ... SKIPPED: Not implemented yet
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_chassis_id_get_admin [0.155235s] ... 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-f6f5981c-5a94-49d0-9a00-07ffa348cfec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_third_party_admin_cannot_get_vifs [0.068421s] ... 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-2af0a5d6-173f-47ac-a7e9-5686d51cab97
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off [0.070339s] ... ok
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none [0.051470s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_owner_admin_can_post_vifs [0.077425s] ... 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-4cd99b92-eb12-4292-9b81-713c6a74d44b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{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.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode [0.042964s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_member [0.128922s] ... 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-b9c45109-6638-44a3-80b8-168c6ef7ddea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_265_service_can_post_vifs_for_own_project [0.074783s] ... 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-505b6e0f-2d76-429f-ac8f-28076d4c1be7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure [0.048066s] ... ok
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness [0.038246s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set [0.045011s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_service_cannot_post_vifs_for_other_project [0.084242s] ... 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-8db141d7-767f-41b9-a193-0f4653d50f4f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported [0.034002s] ... ok
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.037766s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_manager_can_post_vifs [0.096262s] ... 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-04335f1b-4268-4449-be2f-69fd985898a1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty [0.036609s] ... ok
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed [0.035084s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.145129s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-61bdfd92-9be2-45f8-9052-bacc6764117f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_can_post_vifs [0.078998s] ... 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-6bad5acd-aef8-424a-ae91-c081656fbd8b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.044551s] ... ok
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported [0.032950s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_can_post_vifs [0.070055s] ... 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-a5b7efd0-ba69-4e7a-9e8f-655be0092ec8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.039872s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_portgroups_get_member [0.144881s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a72642b3-3822-4dfc-86b4-475bab53fa88
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false [0.047694s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_owner_member_can_post_vifs [0.072841s] ... 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-40f232e0-91b1-4f31-a518-00eb33a830e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.039722s] ... ok
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.039114s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_observer [0.512410s] ... 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-ee15d9dd-c71f-4b84-bb20-0c7460ae26d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_lessee_member_cannot_post_vifs [0.071093s] ... 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-513421f3-7e47-4a1c-967c-8f70b5c3b06b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_portgroups_get_reader [0.125368s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aa713f54-24f7-4683-8250-795de3d89c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.055871s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_cannot_post_vifs [0.084733s] ... 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-7e8fe579-be88-4569-898f-fca4b9caa58b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.047092s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_patch_admin [0.144462s] ... 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-96c92263-2bf7-46b6-a1f2-836fd634ed90
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.043413s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_cannot_post_vifs [0.078527s] ... 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-fead147b-ba81-4901-b3f1-363f97bac5ec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.055526s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_portgroups_post_admin [0.167137s] ... 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/29b30ef2-df9d-43c0-81ac-8dc39346d0fc
Openstack-Request-Id: req-e894cdf6-bbf1-4eb3-b65e-0e0c67527b5c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "29b30ef2-df9d-43c0-81ac-8dc39346d0fc", "created_at": "2025-03-28T10:19:12.686995+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/29b30ef2-df9d-43c0-81ac-8dc39346d0fc", "rel": "self"}, {"href": "http://localhost/portgroups/29b30ef2-df9d-43c0-81ac-8dc39346d0fc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/29b30ef2-df9d-43c0-81ac-8dc39346d0fc/ports", "rel": "self"}, {"href": "http://localhost/portgroups/29b30ef2-df9d-43c0-81ac-8dc39346d0fc/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_post_vifs [0.081898s] ... 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-40f15f61-12d0-485e-927b-ffb22cc41f44
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.058914s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_member [0.138039s] ... 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-ee98d2d0-4d81-4a8b-bf42-a72c0ae937c5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info [0.049560s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_admin_delete_vifs [0.075727s] ... 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-6857b9ae-2d50-4280-8193-18726e983524
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.040180s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_portgroups_post_member [0.148030s] ... 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-1156d10e-4f1e-4f4e-a8ad-9f67e8ccf457
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info [0.024546s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_owner_manager_delete_vifs [0.075503s] ... 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-a3d41852-0fa8-40a3-82e5-b029db591261
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.031487s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_observer [0.138845s] ... 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-87bbb2ef-341c-4185-860d-8cd6a76c63d9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor [0.026189s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_lessee_admin_can_delete_vifs [0.084604s] ... 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-651e9fe6-e4dc-4715-80a7-2091e9006dfc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.050632s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.155644s] ... 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-e83d717c-a439-497a-a36c-ea57bf7c39c2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.051179s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_lessee_manager_can_delete_vifs [0.069633s] ... 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-0b4ea7e4-640a-4367-abda-dd402bfa939b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_delete_admin [0.138215s] ... 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-852c40b3-9e94-48aa-bb9d-deb9d1a3a7e7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation [0.047200s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_owner_member_can_delete_vifs [0.067282s] ... 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-cc17b7bc-ce8f-4811-a6b8-f1eb58f34972
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.056834s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [0.145638s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f10c1fea-01de-49ca-aaff-33e880004918
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:13.095418+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_lessee_member_cannot_delete_vifs [0.065062s] ... 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-756ec9ff-bd44-40c3-863a-4e8367172b73
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.051704s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_member [0.142658s] ... 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-41469407-f889-4769-844d-826dda7523e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true [0.054422s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_third_party_admin_cannot_delete_vifs [0.066053s] ... 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-52f29fdc-84e6-47eb-bcc3-64224f472efb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_observer [0.093749s] ... 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-d7cdbfd1-6c9d-4392-93a5-bd45b1f2806b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_service_can_delete_vifs [0.066754s] ... 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-ce8c2828-7c55-47d4-bc87-89a965a4e41e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.155403s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-00dcaf86-cce5-4154-8431-33d0428e1b5f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:13.238566+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.075378s] ... ok
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false [0.040425s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_node_history_get_admin [0.084341s] ... 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-68bd991c-7aa2-4600-813f-8fa9f3104b57
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_service_cannot_delete_other_nodes_vifs [0.068726s] ... 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-257e2b07-ba31-4bb8-ad49-4abf40815846
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.064644s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_member [0.070931s] ... 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-0e05afea-501b-465b-b0a9-87d870676a0d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_owner_readers_can_get_indicators [0.071243s] ... 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-e097688c-fc33-45d7-ae44-8340c8e45d9e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.046899s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.173734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-841c61d9-e746-48a3-996b-865cad1b6d43
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:13.420855+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true [0.044042s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_observer [0.082563s] ... 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-85d8826b-5c8c-48b4-9ef2-54f98d0b8454
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_lesse_readers_can_get_indicators [0.084113s] ... 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-68aacf52-f4da-4dcc-b791-5cf2e049ecc9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.026647s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.021098s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.019295s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_entry_admin [0.071919s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/dc164a89-602d-44bb-a208-4502821e7439 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4ea7f74b-f869-4ba0-9153-ce384fb9beec
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_third_party_admin_cannot_get_indicators [0.066750s] ... 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-6db74c91-1ade-49da-ad22-879fdfaa48fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.021985s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.018489s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.018844s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_member [0.065625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/09fb69de-8a72-4ffa-8bc1-882b1c914cff WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-43554876-715d-4fd8-864e-560c6771a386
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_reader_can_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work.
{2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.063888s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.241491s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-44765d9c-4583-4b0b-80a6-e4b129743fbd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:13.623308+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception [0.079235s] ... ok
{2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.053317s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_observer [0.202307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/91e99249-d017-42b8-b8a8-25b4f9903917 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b40f9fd4-0ede-425b-8bae-6149cbffe900
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.046134s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_reader_not_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work.
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.191761s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7e231b8a-deb4-4934-8dce-4ed7e8ec9422
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:13.868351+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.043650s] ... ok
{0} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature [0.040763s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.076409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1203b385-d505-4b6b-a8cf-f94336d26f41
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:13.979830+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_owner_member_can_set_indicator [0.102407s] ... 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-3f6548d3-4f44-4f2a-996b-e700a2a761b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.060024s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb27d140-4718-4138-b121-2c3a3430dfb3
{"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.90"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.90"}]}
{2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [0.231353s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.086426s] ... 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-a13d1f2c-a9e9-40af-87c6-9b4afbb2549a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_lessee_member_cannot_set_indicator [0.070706s] ... 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-c9585c38-d0db-4e46-8cfc-f48551fbb669
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.058399s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/foo WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_set_indicator [0.070534s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/component/magic_light WITH None GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f96a4225-b6fb-4ef7-b634-6e0002e9bcd6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.066341s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ GOT Response: 405 Method Not Allowed
Content-Type: application/json
Openstack-Request-Id: req-1f87dc92-6208-4e49-b261-93b5ff2ff073
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.129017s] ... 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-1a8711bc-b8b0-4dd6-960a-0fb57b25c661
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_owner_reader_can_list_portgroups [0.067327s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-22dbddde-60f8-415d-8ae8-9bf6c32fca4f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "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.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.078806s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_owner_service_can_list_portgroups [0.064708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d379a2cc-1515-4f78-9ec8-77b2d1882ad4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.081680s] ... 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-c9181c58-99d3-4c14-a290-cc8fdd46631e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.065208s] ... ok
{2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.265223s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_lessee_reader_can_list_portgroups [0.071625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3d44c87-c242-42f7-a8f5-e05b9872fb79
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.044875s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.095409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-38fa843f-00e4-4ee2-8d25-2d5c0fbf4bc4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.025873s] ... ok
{2} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.128370s] ... ok
{2} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.020917s] ... ok
{2} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.017266s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_third_party_admin_cannot_list_portgroups [0.134860s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7617c5a4-93b3-4db2-b8e1-5136c44536c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": []}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_portgroups_portgroup_ident_delete_member [0.142126s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8b49814c-f564-4c85-82b6-9187b39ae97c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions [0.248638s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_owner_reader_can_read_portgroup [0.162734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f42b46dc-364b-48c1-b099-9483d0ed1752
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-03-28T10:19:14.585226+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.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.027229s] ... ok
{2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and [0.025215s] ... ok
{2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.027567s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean [0.017906s] ... ok
{2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.019943s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args [0.026118s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.018986s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.017442s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.017193s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.026430s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_lessee_reader_can_read_portgroup [0.178849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bcfa084c-7a4b-470a-ae2f-02829d293fbb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:14.784607+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/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "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.common.test_args.ValidateDecoratorTest.test_mac_address [0.020346s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.027217s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated [0.019035s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name [0.017858s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.391018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f8f4aebd-6d95-4e6d-8648-2f8c5b34d0fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.019894s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string [0.019702s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list [0.018088s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args [0.017051s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.072766s] ... 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-53f45632-6da4-4525-a5b6-914084533124
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_args.ValidateDecoratorTest.test_uuid [0.019079s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_third_party_admin_cannot_read_portgroup [0.177239s] ... 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-525bc2be-05c0-42aa-a940-90673b65fd83
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name [0.026372s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid [0.021232s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.072567s] ... 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-dd36d110-5703-4514-993f-eadb51288acc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.023429s] ... ok
{0} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.027295s] ... ok
{0} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.032522s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.073988s] ... 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-67523827-f282-4ba4-a01f-6eb790079124
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_cinder.TestCinderActions.test_attach_volumes [0.058832s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_admin_can_add_portgroup [0.186476s] ... 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/0344a3d2-afef-46fe-9382-21629e8c270e
Openstack-Request-Id: req-a7a7bc26-32cb-4ecc-9dc2-48f6004c5fe1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "0344a3d2-afef-46fe-9382-21629e8c270e", "created_at": "2025-03-28T10:19:15.215713+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/0344a3d2-afef-46fe-9382-21629e8c270e", "rel": "self"}, {"href": "http://localhost/portgroups/0344a3d2-afef-46fe-9382-21629e8c270e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/0344a3d2-afef-46fe-9382-21629e8c270e/ports", "rel": "self"}, {"href": "http://localhost/portgroups/0344a3d2-afef-46fe-9382-21629e8c270e/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.080585s] ... 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-c00038bb-0112-4d5e-9513-c97337be366e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.067882s] ... ok
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.549277s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_nodes_portgroups_get_service_project [0.090028s] ... 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-418e6b5a-1df7-4290-93b7-5671d5074bdb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.063065s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure [0.042087s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_portgroups_detail_get_admin [0.083049s] ... 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-43b54083-852e-43f8-a353-9dddbbb246f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:15.379144+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_owner_service_can_add_portgroup [0.217302s] ... 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/4b463684-986a-4832-b366-ce3bd7ba6edb
Openstack-Request-Id: req-f94e7ce6-2682-43d7-af79-88d23492975b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4b463684-986a-4832-b366-ce3bd7ba6edb", "created_at": "2025-03-28T10:19:15.441894+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/4b463684-986a-4832-b366-ce3bd7ba6edb", "rel": "self"}, {"href": "http://localhost/portgroups/4b463684-986a-4832-b366-ce3bd7ba6edb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/4b463684-986a-4832-b366-ce3bd7ba6edb/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4b463684-986a-4832-b366-ce3bd7ba6edb/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.178931s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.098848s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_portgroups_detail_get_member [0.067983s] ... 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-e5a4e1a0-0a86-4d6b-98a5-fb9430698fcf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:15.460127+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_owner_manager_can_add_portgroup [0.079383s] ... 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/f2abfe4b-a556-4a5e-ba5e-ad4e3b8e112d
Openstack-Request-Id: req-88779bc4-d37b-4e22-bfc6-429e96af8062
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f2abfe4b-a556-4a5e-ba5e-ad4e3b8e112d", "created_at": "2025-03-28T10:19:15.531285+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/f2abfe4b-a556-4a5e-ba5e-ad4e3b8e112d", "rel": "self"}, {"href": "http://localhost/portgroups/f2abfe4b-a556-4a5e-ba5e-ad4e3b8e112d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/f2abfe4b-a556-4a5e-ba5e-ad4e3b8e112d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/f2abfe4b-a556-4a5e-ba5e-ad4e3b8e112d/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.054649s] ... ok
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.067494s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_portgroups_detail_get_reader [0.079962s] ... 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-39f0d724-8ff4-4ba3-9a60-d252cdd69849
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:15.529273+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.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.049043s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_owner_member_cannot_add_portgroup [0.079554s] ... 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-f9b11174-bf9e-47e8-8c03-f441f78c9f4d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.049899s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_service [0.078850s] ... 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-3da48ef0-7a63-47ae-a3bb-c55605c73012
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-03-28T10:19:15.617732+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_lessee_admin_cannot_add_portgroup [0.071987s] ... 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-0b46185c-6657-4d05-bfb7-e6f442284d56
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.069368s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service_project [0.073946s] ... 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-7615aecd-a593-46c1-8f29-fbb1cb4a1c65
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.051741s] ... ok
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.227106s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_lessee_manager_cannot_add_portgroup [0.104762s] ... 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-936c0bee-89e8-435f-a3c4-ca49a380ca94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_ports_get_admin [0.072494s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6445f187-9eb3-49a0-a318-e026ae50bc96
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.029654s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request [0.060903s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_ports_get_service [0.065114s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bd47e931-7df0-4af9-b0f8-224a50f6574b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value [0.045545s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_member_cannot_add_portgroup [0.082413s] ... 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-617d937a-ba21-4bb7-9d08-2c4f2b0110d2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.054228s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_service_project [0.078272s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-adc36a78-5200-48d2-bc7c-a2f857a89955
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_third_party_admin_cannot_add_portgroup [0.101203s] ... 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-59eb2115-fd7f-4710-b236-c73fe72584b9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.197722s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service_project_disabled [0.061940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-04c80e79-0e0d-4d58-b26d-3120cfc9649a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.022082s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_ports_get_member [0.078707s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2704bec1-e89d-4b28-a043-38d76b0386d0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_owner_admin_can_modify_portgroup [0.104579s] ... 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-4f86006a-9102-48ef-8827-1c31332af865
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_reader [0.062723s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-76e22a12-eaf9-4e9a-9244-ae67cb58e43c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.265943s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_owner_manager_can_modify_portgroup [0.108071s] ... 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-1d1feeb6-83ef-402c-ad3d-34d1beadae93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_ports_post_admin [0.082075s] ... 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-f9d3a95a-8c6d-4e6c-998b-5c3d68032135
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.047566s] ... ok
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.217199s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.043533s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_member_cannot_modify_portgroup [0.100825s] ... 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-ce0834f1-405c-467e-84a3-98292bafb4d6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_ports_post_member [0.089429s] ... 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-96c740be-a77f-4722-a648-642e91a0283e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.055207s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_lessee_admin_cannot_modify_portgroup [0.077874s] ... 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-80852238-34a2-434f-968d-ab9a1c6f663b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.045778s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_reader [0.075391s] ... 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-a74b2d28-3a9e-46ab-90bf-e5ac15a6a8ea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.032546s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.045666s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_lessee_manager_cannot_modify_portgroup [0.101598s] ... 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-19604bec-d22e-424f-86c0-0164e34344ce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.042230s] ... ok
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.292301s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_ports_detail_get_admin [0.132416s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0243da73-eb16-481a-8859-aef0771e3dfd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:16.488824+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, "links": [{"href": "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.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.053702s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_lessee_member_cannot_modify_portgroup [0.080747s] ... 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-ef809c44-f150-45d4-a787-5e861485cf62
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.050174s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.039247s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.030852s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.057528s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_ports_detail_get_member [0.133344s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1561e4c-781c-453d-8e53-d913d4f4b504
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:16.627420+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_third_party_admin_cannot_modify_portgroup [0.117587s] ... 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-a4b2995d-d03e-4d52-b953-15f71754e7fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.053847s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.078186s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.056073s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_owner_admin_can_delete_portgroup [0.080424s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-6cf0b035-8a76-4c7c-984f-aa5e9f3cbcac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.085062s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.064164s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_reader [0.148276s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-321aac54-dec1-40b3-ab2a-b9b538a6cf43
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:16.769186+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, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_owner_manager_can_delete_portgroup [0.088350s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-3750fc9c-7ec9-4019-b676-556a6b677f9f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.079787s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.062560s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_owner_member_cannot_delete_portgroup [0.074787s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-261cd13e-9b28-40ee-abc5-e3cd6bf31eaf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.063712s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.083751s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_ports_port_id_get_admin [0.166322s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-17a7ecf8-b2c9-4c74-89a8-ec2955296910
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:16.910108+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, "links": [{"href": "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.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.064999s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.083012s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.061894s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_owner_service_can_delete_portgroup [0.169265s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-fd195058-4cdc-413c-ba33-7b13bbdd329b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.091433s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.059029s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_ports_port_id_get_member [0.172374s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-389fc58a-0040-4fcc-ac80-c57ab506c0f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:17.091704+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, "links": [{"href": "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.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.063925s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.088573s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.069355s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_lessee_admin_cannot_delete_portgroup [0.170564s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0b72cabb-8d3c-44eb-8b5b-fdf9d45dee05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.095970s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_reader [0.161315s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-90ee3124-14f3-4df7-a114-6142c5b493b5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:17.262670+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, "links": [{"href": "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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.076306s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.032882s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.057490s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.026014s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.027619s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_lessee_manager_cannot_delete_portgroup [0.144369s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3ca0c484-f956-4c0f-8978-80ababdbb648
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.025504s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.047679s] ... ok
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.030148s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.029750s] ... ok
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.032654s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.023117s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_patch_admin [0.180684s] ... 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-3a4d0c44-37e0-4516-88e8-1b7a633f3de5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.026363s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.025693s] ... ok
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.026931s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_member_cannot_delete_portgroup [0.144795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-690c673d-1916-4650-8bfc-f95eef5e7d96
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.033053s] ... ok
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.023755s] ... ok
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.026247s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.044220s] ... ok
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.023447s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_third_party_admin_cannot_delete_portgroup [0.088994s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b189fade-60a5-4be5-ab97-fecf65c78da3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.027949s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.047121s] ... ok
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.023825s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_patch_member [0.192258s] ... 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-f372e47e-566d-4f1f-a884-45fe03749eb6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.020609s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.048098s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_service_cannot_delete_portgroup [0.073026s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e78ef560-2667-4b84-8b78-5db35808b474
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.024102s] ... ok
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.033314s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.050347s] ... ok
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.037469s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_owner_reader_can_get_node_portgroups [0.086566s] ... 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-da604295-2bf5-403a-a51c-56b48282a5dc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.026522s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.055116s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_reader [0.143295s] ... 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-a1b9e8bc-4483-436f-9004-3c0a70338fc4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.026113s] ... ok
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.033726s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_lessee_reader_can_get_node_porgtroups [0.091484s] ... 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-c358a19c-e58c-4659-bf5b-b913555bcaad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_ports_port_id_delete_admin [0.085312s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-c8ce2b1f-8bb1-4f82-abdc-880e9401e076
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.039127s] ... ok
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.037292s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_third_party_admin_cannot_get_portgroups [0.086014s] ... 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-0ff01137-11d9-4cf8-ae76-25b15fead642
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.027766s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_ports_port_id_delete_member [0.077245s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ab5f29da-fcf9-4638-9ecc-880d8cde0c35
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.045963s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: line 1: mkisofs: command not found
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_bad_iso_qcow2 ... SKIPPED: mkisofs not installed
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.039014s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.027227s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_reader [0.105788s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-882429e3-1f1d-4cf2-9797-2ab5c1b99cd0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.025157s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_nodes_ports_get_admin [0.087981s] ... 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-2f51f6a2-5511-48b1-bdab-df28301a95a0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.074964s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_from_file_reads_minimum [0.165263s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.026512s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.038184s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: line 1: mkisofs: command not found
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.032918s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_iso_9660 ... SKIPPED: mkisofs not installed
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_service_cannot_get_portgroups [0.328170s] ... 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-c37e3ca2-ca43-4287-aeb3-171df78bc1dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.025666s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_nodes_ports_get_member [0.168967s] ... 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-1fc615eb-907e-4035-ac2a-72cd52b0dbf0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_owner_reader_can_list_ports [0.078976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9c00462a-f0d8-447a-84fc-0583ccb512e7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "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"}]}]}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: line 1: mkisofs: command not found
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_iso_udf ... SKIPPED: mkisofs not installed
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_owner_service_can_list_ports [0.080996s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a121200d-3b67-462a-a65a-7787f6558333
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_reader [0.116372s] ... 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-92ad051f-722f-4cb0-9021-f941f917f5c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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"}]}]}
/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)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_reader_can_list_ports [0.093183s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f498d8aa-0b64-4b87-8e56-9d7f4a06f662
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.234499s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_detail_get_admin [0.095307s] ... 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-e99ae196-6b73-4a59-b5ba-e85fde0a34af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:18.567071+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, "links": [{"href": "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}]}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.031696s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.022846s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_third_party_admin_cannot_list_ports [0.068742s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-36d0ac35-233a-41cd-938a-92cb93b407af
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.036454s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_detail_get_member [0.115753s] ... 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-993889f9-7993-4d8b-a76d-54bcd4cff8da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:18.700056+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, "links": [{"href": "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.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.031788s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.024892s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_owner_reader_can_read_port [0.089549s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-57dbcfab-5d1d-4df1-ba3f-15831fdd90c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-03-28T10:19:18.726127+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, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.024591s] ... ok
/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)
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.025959s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_owner_service_can_read_port [0.079024s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-55387e83-dbf7-4184-8959-5165e7e7bd6a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-03-28T10:19:18.814234+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, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.031417s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.033869s] ... ok
{2} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.020673s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_lessee_reader_can_read_port [0.103694s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-757b56d6-5479-455b-be60-9b0829a89a37
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:18.928659+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, "links": [{"href": "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.db.test_shard.ShardTestCase.test_get_shard_list [0.052000s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.052196s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_third_party_admin_cannot_read_port [0.085390s] ... 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-e80514b4-2e41-423e-9f64-0bae097c4b49
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_reader [0.312733s] ... 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-7d45764c-98b1-4b69-a6d7-2bfc6b2c1eeb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:19.013522+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, "links": [{"href": "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.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.042107s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.039109s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_owner_admin_can_add_ports [0.086637s] ... 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-09d4493e-e5f3-412b-ba34-62d742d24291
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_portgroups_ports_get_admin [0.096602s] ... 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-b3e936ae-5c2f-459c-9f39-138ad65884db
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2 [0.701695s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.048017s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2_feature_flag_checks [0.042784s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_owner_manager_can_add_ports [0.074026s] ... 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-d962d4d5-f010-455c-b0e2-cda4ea95abf7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.047454s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_portgroups_ports_get_member [0.073555s] ... 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-c85c6943-24d3-4ab9-8cd8-0c00df16ad54
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2_invalid [0.038861s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.048754s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_portgroups_ports_get_reader [0.071803s] ... 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-b9bfa89f-41b0-411b-9b71-4c4329007f3f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_owner_admin_cannot_add_ports_to_other_nodes [0.093065s] ... 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-89469093-8507-43b5-babc-818e8f037959
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.049172s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.027172s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_portgroups_ports_detail_get_admin [0.072260s] ... 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-ebe37b65-afb1-4142-9584-2ccc98e094c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.033406s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_owner_manager_cannot_add_ports_to_other_nodes [0.080205s] ... 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-568d8ce7-7395-488f-8dd7-bf882e223a61
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.031643s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.033368s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_cannot_add_ports_to_other_nodes [0.083438s] ... 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-834bf55a-e07b-410c-ac06-c18e6129c2a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_portgroups_ports_detail_get_member [0.096507s] ... 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-7d13351c-c12a-433b-bd90-af241f54fbda
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.028406s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.031483s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.038712s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_portgroups_ports_detail_get_reader [0.079427s] ... 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-d28ebbc9-bb17-4135-bf0b-d4e525497cd1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_owner_member_cannot_add_port [0.103804s] ... 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-b3c850ec-7fa2-4735-b1c2-e0df5fff6a70
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.024909s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.034513s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_volume_get_admin [0.063512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0755c497-2a10-44f5-8e4e-c1e519d447aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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"}]}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_lessee_admin_cannot_add_port [0.073758s] ... 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-bc23f83e-3f90-4088-975a-985d3d3ab406
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.037713s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2_safety_checks [0.448813s] ... ok
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.047907s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_volume_get_member [0.082073s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c230af0-db88-4f09-9f1f-b9194597f01b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_manager_cannot_add_port [0.092240s] ... 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-6eb739da-380c-4550-8958-6640fa375ffe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.046754s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_reader [0.074982s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dfc4a414-5873-4a80-a71c-e11220eb389d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_format_inspector.TestFormatInspectors.test_qed_always_unsafe ... SKIPPED: qemu-img not installed or does not support qed format
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.075738s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_lessee_member_cannot_add_port [0.095889s] ... 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-1090f516-1a86-49ca-b45c-7d8a868c6420
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_service [0.071994s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3481716-75d0-4ee7-b4bc-18d75c154153
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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"}]}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.040031s] ... ok
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.030321s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.026351s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_get_service_project [0.077638s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c020d094-2cb3-4e11-8f0c-be6492c7f1c1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_third_party_admin_cannot_add_port [0.097032s] ... 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-edf25eda-1792-45b3-b569-42a7d8e4d31c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.037990s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.034871s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_connectors_get_admin [0.074633s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0c7f18b-4ad6-4e2c-bb22-aca9de2d0405
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.029513s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_service_can_add_port [0.108122s] ... 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-bb2d2a20-c13d-4ade-ac1d-c09a082abbe6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_volume_connectors_get_member [0.079661s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-12d033a1-1e6a-4633-8772-ce22c16bdc55
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.067585s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_service_cannot_add_ports_to_other_project [0.090297s] ... 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-48842599-eb5a-4e22-aa51-0c09a9447d21
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_reader [0.076556s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b136d1e6-7daf-47c2-9d19-5b8b83f1c397
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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"}]}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.123481s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_volume_connectors_get_service [0.093831s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d872b513-3133-428e-99c3-12ab81ed10a4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_owner_admin_can_modify_port [0.135168s] ... 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-b1b61ce3-937a-4f9d-9c60-b9a20045aa0f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
/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)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.127346s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_volume_connectors_get_service_project [0.103504s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-97170085-4e64-42ea-a950-eaa075a44483
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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"}]}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_owner_manager_can_modify_port [0.132863s] ... 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-e4cfa71a-da55-4ca0-8f71-92260dece681
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.102152s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_volume_connectors_get_service_project_disable [0.139737s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-928d4a7b-a015-46ec-834f-be1aae1b7ffd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": []}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.051739s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vdi [0.733277s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vdi_invalid [0.035243s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.103336s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_service_can_modify_port [0.223866s] ... 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-d699348b-3445-49c1-98ac-0aaac4da8b14
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_volume_connectors_post_admin [0.179915s] ... 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/e7223dcf-47bb-4000-9bba-35b7bc086989
Openstack-Request-Id: req-e36575e0-6fab-4ec2-85a6-c60d8c75836c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e7223dcf-47bb-4000-9bba-35b7bc086989", "created_at": "2025-03-28T10:19:20.676134+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/e7223dcf-47bb-4000-9bba-35b7bc086989", "rel": "self"}, {"href": "http://localhost/volume/connectors/e7223dcf-47bb-4000-9bba-35b7bc086989", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_member_cannot_modify_port [0.085110s] ... 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-59c28332-e1f5-4d56-8f36-c756c29d1c05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.121898s] ... ok
/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)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_lessee_admin_cannot_modify_port [0.071477s] ... 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-b53108a4-f182-4ee3-8c29-6c22c772a745
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.104494s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_volume_connectors_post_member [0.159428s] ... 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/69983de6-b7e7-48b0-b287-45d6567162f6
Openstack-Request-Id: req-ef592bce-c3a2-4923-9196-296db4be1de2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "69983de6-b7e7-48b0-b287-45d6567162f6", "created_at": "2025-03-28T10:19:20.837661+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/69983de6-b7e7-48b0-b287-45d6567162f6", "rel": "self"}, {"href": "http://localhost/volume/connectors/69983de6-b7e7-48b0-b287-45d6567162f6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_manager_cannot_modify_port [0.090386s] ... 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-7b94a53c-eb78-40c0-bac2-57a5fe51035d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
/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)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.101402s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_reader [0.115418s] ... 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-737224bb-e1c8-46c5-acc3-a241198ab69b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_lessee_member_cannot_modify_port [0.093980s] ... 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-1add465a-4716-42ab-9796-656b9957dd38
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.067482s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_service [0.074483s] ... 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/693f40bc-ca33-4e83-83e6-3bc289c560ff
Openstack-Request-Id: req-03664002-2942-4417-b0d8-08eea5d64be4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "693f40bc-ca33-4e83-83e6-3bc289c560ff", "created_at": "2025-03-28T10:19:21.049729+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/693f40bc-ca33-4e83-83e6-3bc289c560ff", "rel": "self"}, {"href": "http://localhost/volume/connectors/693f40bc-ca33-4e83-83e6-3bc289c560ff", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.041447s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vhd [0.544796s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_third_party_admin_cannot_modify_port [0.125458s] ... 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-25c0c62a-8603-42a8-b5e4-024278327233
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.048128s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vhd_invalid [0.057223s] ... ok
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.049248s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_owner_admin_can_delete_port [0.068620s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-c73993e6-b902-4dc2-8bf6-7c6fd1f8d76a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vhdx_invalid [0.026129s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_service_project [0.155645s] ... 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/f84825c0-73b8-435f-9385-b95af28b6590
Openstack-Request-Id: req-c11c9fc3-6f05-4cf4-a641-ac285c6e340d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f84825c0-73b8-435f-9385-b95af28b6590", "created_at": "2025-03-28T10:19:21.194652+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f84825c0-73b8-435f-9385-b95af28b6590", "rel": "self"}, {"href": "http://localhost/volume/connectors/f84825c0-73b8-435f-9385-b95af28b6590", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.063180s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_owner_manager_can_delete_port [0.087976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-d9e80cc5-7d1b-4443-b8f7-5473bc91b65d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.063428s] ... ok
/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)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_owner_service_can_delete_port [0.066806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-a39a5d3b-f96c-4a63-91b2-b1fad19921fe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.056943s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_volume_connector_id_get_admin [0.155243s] ... 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-21ab71c9-ec55-455b-93fd-7ff519413edf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:21.313258+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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.051322s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_member_cannot_delete_port [0.093011s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-eaa54db1-c0d7-43f0-bcdd-534a24ff57d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.054725s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_lessee_admin_cannot_delete_port [0.078741s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-18226d5b-3a3a-4088-8880-a48d96de77fc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.058856s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_volume_connector_id_get_member [0.156057s] ... 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-8afc90c6-3cc4-4c40-813a-93f4d58478f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:21.473775+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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.035496s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_lessee_manager_cannot_delete_port [0.094428s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4c8ebb1d-31c3-440e-be6f-90d542d371ee
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config [0.092621s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_reader [0.147420s] ... 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-503d0577-e41e-4997-9a13-b686bc79b5c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:21.621095+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_lessee_member_cannot_delete_port [0.076625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-151caceb-e490-44d4-a03f-8d2ec6045989
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail [0.095063s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_third_party_admin_cannot_delete_port [0.106317s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-567cb14e-5257-4552-9c6e-fb36710c62fb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config [0.088539s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_patch_admin [0.158863s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-18fd9901-d0a6-4ace-92a6-9549cf045010
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk [0.706454s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail [0.094457s] ... ok
5+0 records in
5+0 records out
5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.019613 s, 267 MB/s
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot [0.076066s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_patch_member [0.162350s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-16088ab6-2e79-4b14-9891-4538fad1909a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_reader [0.067420s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-c2796e16-55fe-4574-8172-dade8a384cff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config [0.077625s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail [0.036325s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_service [0.089267s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-1da8de57-b772-4bcc-8661-395b6d732452
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_owner_reader_can_get_node_ports [0.384195s] ... 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-c4110381-f981-4750-968f-3c775fb8b087
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config [0.083630s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_delete_admin [0.079417s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-e8e62aef-25a5-4866-9a2d-c7d9a84568fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_owner_service_can_get_node_ports [0.077427s] ... 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-f178ea17-86d4-4b48-bc1c-b5d3f0e2cdd1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail [0.057297s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue [0.052845s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device [0.038615s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_delete_member [0.127809s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f1f35911-7888-4ea8-834c-3c41b94be895
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_lessee_reader_can_get_node_port [0.165230s] ... 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-0264dd49-2536-4f42-8e9d-e4dafd6ed270
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_reader [0.124626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6e5e7cad-9a24-43cd-9edc-b196d07fa833
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_third_party_admin_cannot_get_ports [0.129078s] ... 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-b1e8dcb2-d531-422c-b883-300bb9824be1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_service_cannot_get_ports [0.094416s] ... 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-67ecb286-cba4-473f-81e6-025478a1d308
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_service [0.126007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-a15005d1-a95a-4f33-a249-5d9f6ae8dd11
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_targets_get_admin [0.110829s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0aaafc04-944a-4908-86c8-8f60d930489d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_owner_reader_can_get_ports_by_portgroup [0.216037s] ... 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-3dd0ec45-648a-42a4-a702-fa0a955f93d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_volume_targets_get_member [0.114855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-606ddd17-bdbb-4c8d-ae3d-3315c4356b52
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info [0.611654s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties [0.054037s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_owner_service_cam_get_ports_by_portgroup [0.189822s] ... 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-f3747f02-df58-4a17-9c57-32525677f121
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data [0.083224s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices [0.061978s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_lessee_reader_can_get_ports_by_portgroup [0.123915s] ... 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-267eaf46-2ee1-46f7-aaee-cf8b9c6dbebc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"ports": []}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state [0.053634s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_reader [0.389271s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2ca4a447-75e7-4ae7-a828-acdd6ba9a614
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac [0.081351s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_third_party_admin_cannot_get_ports_by_portgroup [0.134749s] ... 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-e785e1c5-15ec-4df2-83ab-18a814460516
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_service [0.094901s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c96e980d-6a27-41e8-af28-26660074ebb3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device [0.143295s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_service_cannot_get_ports_by_portgroup [0.132750s] ... 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-2d664c5f-22b6-4940-8149-28e1b56159c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_volume_targets_post_admin [0.093300s] ... 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/9b76e259-3e44-4288-81f0-49679654b6b9
Openstack-Request-Id: req-347e4787-7b05-41b2-9632-97f1454ffc03
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9b76e259-3e44-4288-81f0-49679654b6b9", "created_at": "2025-03-28T10:19:23.471594+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9b76e259-3e44-4288-81f0-49679654b6b9", "rel": "self"}, {"href": "http://localhost/volume/targets/9b76e259-3e44-4288-81f0-49679654b6b9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_owner_reader_can_list_volume_connectors [0.077129s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8633ad10-62c8-42b8-b482-417e4658abb1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail [0.090216s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_volume_targets_post_member [0.074285s] ... 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/9ba89863-ff88-4d96-9962-9011ef711ad2
Openstack-Request-Id: req-8d9d0dbe-ff4b-4e39-89f9-b495b94365a8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9ba89863-ff88-4d96-9962-9011ef711ad2", "created_at": "2025-03-28T10:19:23.546739+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9ba89863-ff88-4d96-9962-9011ef711ad2", "rel": "self"}, {"href": "http://localhost/volume/targets/9ba89863-ff88-4d96-9962-9011ef711ad2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_service [0.074814s] ... 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/f93882fc-7370-4017-8d70-eb38537358d8
Openstack-Request-Id: req-342d02a6-5bb8-4044-8c90-6a862b5c7ce0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f93882fc-7370-4017-8d70-eb38537358d8", "created_at": "2025-03-28T10:19:23.623516+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f93882fc-7370-4017-8d70-eb38537358d8", "rel": "self"}, {"href": "http://localhost/volume/targets/f93882fc-7370-4017-8d70-eb38537358d8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_lessee_reader_can_list_volume_connectors [0.120904s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-87962b5b-1dae-4299-8ad8-6c4e87445a55
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.136025s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_service_project [0.080025s] ... 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/2435c6a8-9f0e-4dfb-bde1-8094f741540b
Openstack-Request-Id: req-a3f91bb8-16d7-43c6-9e6a-94474e5c8796
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2435c6a8-9f0e-4dfb-bde1-8094f741540b", "created_at": "2025-03-28T10:19:23.705133+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2435c6a8-9f0e-4dfb-bde1-8094f741540b", "rel": "self"}, {"href": "http://localhost/volume/targets/2435c6a8-9f0e-4dfb-bde1-8094f741540b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.085398s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_third_party_admin_cannot_get_connector_list [0.108629s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a8d942c7-674a-427b-bd8c-2f97b747d521
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": []}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service_project_disabled [0.074792s] ... 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-71f733d3-dfad-4167-a2e0-8348847a0d23
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.106671s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project_admin [0.081818s] ... 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-c23b1763-6f53-4cf3-98c1-6440360f9e91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_owner_admin_can_post_volume_connector [0.172315s] ... 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/22a93b1c-4e2b-4aa5-b06c-7a76cfdfd2e0
Openstack-Request-Id: req-2c4ada75-e5ec-49cb-9c79-08c7628aa176
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "22a93b1c-4e2b-4aa5-b06c-7a76cfdfd2e0", "created_at": "2025-03-28T10:19:23.925767+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/22a93b1c-4e2b-4aa5-b06c-7a76cfdfd2e0", "rel": "self"}, {"href": "http://localhost/volume/connectors/22a93b1c-4e2b-4aa5-b06c-7a76cfdfd2e0", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_reader [0.071393s] ... 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-82571cbb-f5b8-4b0c-ad16-0b2be9c366d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.120698s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_volume_target_id_get_admin [0.069779s] ... 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-c112daae-bc1e-4c66-ab7f-1cd9faa1e263
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:23.983604+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_volume_target_id_get_member [0.067792s] ... 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-1342fbcb-1a85-44f6-95b8-0e9eef0f1641
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:24.052170+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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.104431s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_owner_manager_can_post_volume_connector [0.161273s] ... 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/ffd7f80d-25ff-46f3-8874-0ebb35327b7d
Openstack-Request-Id: req-b5fce18f-03b4-4b09-85e8-1f2af7dde8e9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ffd7f80d-25ff-46f3-8874-0ebb35327b7d", "created_at": "2025-03-28T10:19:24.092456+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/ffd7f80d-25ff-46f3-8874-0ebb35327b7d", "rel": "self"}, {"href": "http://localhost/volume/connectors/ffd7f80d-25ff-46f3-8874-0ebb35327b7d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.045387s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_reader [0.086611s] ... 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-34844237-0f8c-40d9-897f-e1d56bf1fcff
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:24.133102+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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.055509s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_owner_service_can_post_volume_connector [0.121873s] ... 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/f361013a-9e19-4fae-beec-28255fe400eb
Openstack-Request-Id: req-21eb84dd-c02c-43e0-bcdf-8081d4107620
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f361013a-9e19-4fae-beec-28255fe400eb", "created_at": "2025-03-28T10:19:24.218422+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f361013a-9e19-4fae-beec-28255fe400eb", "rel": "self"}, {"href": "http://localhost/volume/connectors/f361013a-9e19-4fae-beec-28255fe400eb", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.046347s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_service [0.100645s] ... 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-44f9b08e-79c3-47b0-84b9-0923af966305
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:24.208302+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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.032193s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_lessee_admin_cannot_post_volume_connector [0.073939s] ... 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-8077d270-41e9-4d88-a589-5bf2ba0b3985
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.034860s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.031712s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.031512s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_lessee_manager_cannot_post_volume_connector [0.077981s] ... 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-579a2735-609c-429b-ac83-723603d0e26c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.062188s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_patch_admin [0.171061s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-8eb1ec9f-c293-4cff-aef8-11a40dc5664a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_third_party_admin_cannot_post_volume_connector [0.068792s] ... 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-f4d0d183-2860-4832-b26f-5e8bc55cdfe9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_service_admin_cannot_post_volume_connector [0.084262s] ... 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-532b8105-a6f2-4429-b53e-07b715f62bce
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.095935s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.051435s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_patch_reader [0.149733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-1690967b-3578-44e5-b564-ab729160c0ab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.053047s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_owner_reader_can_get_volume_connector [0.134746s] ... 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-3c701420-fc9a-4d52-b580-2e0cb32c96d4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:24.615582+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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit [2.782741s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.051942s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_service [0.120065s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-5028371a-93dc-4a9f-9c98-c7b172c70823
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.026232s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
5+0 records in
5+0 records out
5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.0199417 s, 263 MB/s
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.025755s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_lessee_reader_can_get_volume_connector [0.108415s] ... 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-4109eaa7-20fc-4208-8a27-83d91d65b7d2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:24.740516+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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.051782s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_delete_admin [0.094834s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-4425a49e-db58-4ce7-a6bb-d020efddf464
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.032509s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.025329s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_third_party_admin_cannot_get_volume_connector [0.082273s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-97afe8cb-b5c5-41bd-9165-8fbf379d6919
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.026796s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_delete_member [0.080298s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-6810fb84-f14d-4342-aaaa-3e5ea004384f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_lessee_member_cannot_patch_volume_connectors [0.071927s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-cf6451c2-8b40-4958-9c98-89ab05f34d28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue [0.052923s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_delete_reader [0.092505s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0e641ed0-0ae3-441e-af31-b658acde6942
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.051170s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_owner_admin_can_patch_volume_connectors [0.085710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-802d8f03-93d6-4a93-8d01-e2cb70ae6ccf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.067405s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_volume_volume_target_id_delete_service [0.093407s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-793a144a-9ee7-4fd6-a62b-32cea8ce3f33
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.035745s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_patch_volume_connectors [0.077570s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-e742e0a6-1b41-473d-9305-f8352b1c8503
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.033272s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.035442s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_nodes_volume_get_admin [0.085021s] ... 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-74cc0f2a-af5a-478a-8b8c-ac50081469e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_lessee_admin_cannot_patch_volume_connectors [0.085466s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-96fa0ef7-441b-4f85-b43e-35a6419c5a94
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.026788s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.031497s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_nodes_volume_get_member [0.068356s] ... 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-73cb5031-54c1-49b9-9649-9d645f81c4f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.031000s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_manager_can_patch_volume_connectors [0.090458s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-7c43d60c-4f82-4e89-9452-558d550ec901
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.039844s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_nodes_volume_get_reader [0.082314s] ... 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-6a985b2a-f054-448a-9dd4-8509f9672a6e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.031408s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_owner_member_can_patch_volume_connectors [0.076923s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-4b1f849b-0de2-4cc2-a8ca-0b94cb80f8e6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.047819s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_nodes_volume_connectors_get_admin [0.079274s] ... 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-33c10360-4162-492c-b8f1-fc57a4c1d3d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_patch_volume_connectors [0.074867s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/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-debb7ea1-32d4-4915-9c26-a64830880262
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac [0.062572s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.046823s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_nodes_volume_connectors_get_member [0.087358s] ... 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-59884592-6843-41e4-9406-e10f01460359
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_owner_admin_can_delete_volume_connectors [0.068863s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-0affbc44-06cf-47ee-93ab-2f886d9c0b04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.068256s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_manager_can_delete_volume_connectors [0.073515s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-838af8d9-014a-42c4-ac2c-4c9762984bfc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_connectors_get_reader [0.093015s] ... 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-3f6b9a15-372d-406d-99ed-0f7338cff9c9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_owner_service_can_delete_volume_connectors [0.065944s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-25f66dc2-0a75-453a-a760-dd8420689b0c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_targets_get_admin [0.085259s] ... 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-ecbf5ef3-f15a-4d9d-b37a-e5aef78a397b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_lessee_admin_can_delete_volume_connectors [0.078304s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-01465d1d-8bad-4ddf-8eb5-392f56aa1b10
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_nodes_volume_targets_get_member [0.076493s] ... 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-f811e7d4-34c2-4850-9a5f-24dee02eb6b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode [0.237308s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_lessee_manager_can_delete_volume_connectors [0.066147s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-dcd84da3-b593-4e68-b053-d581bbbb3fea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job [0.045058s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_nodes_volume_targets_get_reader [0.085403s] ... 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-e22a3348-475e-4859-9ecc-30e9909e9ef8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job [0.031401s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_third_party_admin_cannot_delete_volume_connector [0.081835s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d68c63c8-8813-4e02-b5e4-0523be8e81ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config [0.024147s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_drivers_get_admin [0.064399s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e40fbbc9-dcd6-42a5-9a53-307f57626c97
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"drivers": []}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail [0.036952s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_drivers_get_member [0.066021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-29ca4c93-58e6-4416-a33b-0a8de863f58a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"drivers": []}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config [0.063315s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail [0.023283s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_change_physical_disk_state [0.022853s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config [0.027362s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail [0.027413s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_drivers_get_reader [0.116959s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2167c461-1b04-4227-84cd-32623dd4d517
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"drivers": []}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config [0.024114s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail [0.022595s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime [0.022408s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot [0.025575s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk [0.035376s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_drivers_driver_name_get_admin [0.142785s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-37513b46-0815-404b-aa37-95f68c40c5c4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail [0.035565s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs [0.025058s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk [0.053043s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_service_cannot_delete_volume_connector [0.473197s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d815197f-5a5a-4ec1-9764-4006291e1ed7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_driver_name_get_member [0.132521s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-12a241e4-9174-40d1-92c1-d4cc74519860
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail [0.058569s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_list_raid_settings [0.045820s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_set_raid_settings [0.054394s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_driver_name_get_reader [0.119470s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3ff3e8ba-c307-4d1d-a4d8-dbd008ed5f6b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_owner_reader_can_get_targets [0.146325s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95b782bd-5004-4e1a-ba37-8fb9e573c3fa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.043798s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.051343s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_properties_get_admin [0.090854s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6c676a77-26be-4238-abad-c89cc2370c05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.057043s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_drivers_properties_get_member [0.060038s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-90f07c65-4ea3-4d1e-b8d9-c7ca33468db6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_lesse_reader_can_get_targets [0.172749s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-86a95cf6-9cf8-44e8-8de2-56568cb09412
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.088603s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.050709s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.032312s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_third_party_admin_cannot_get_target_list [0.161215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d758e2d4-5d5b-42d5-a0a3-face5c6f280d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": []}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.061643s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_owner_reader_can_get_volume_target [0.099045s] ... 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-09cf3e4d-0b75-4ebd-8927-81654fdc68df
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:26.914173+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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.094804s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_drivers_properties_get_reader [0.360660s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-69e499d4-503d-4538-8ff2-06b2a2b78737
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_lessee_reader_can_get_volume_target [0.090804s] ... 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-79f2d6c1-28ab-4b87-8ba0-5753e4a0e49e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-03-28T10:19:26.994923+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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.092606s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_drivers_raid_logical_disk_properties_get_admin [0.072018s] ... 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-142f7a62-f677-4463-a3cf-2976d06545e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_third_party_admin_cannot_get_volume_target [0.068466s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4438e385-7721-40d8-a30e-2f0c85e3fd99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_drivers_raid_logical_disk_properties_get_member [0.079323s] ... 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-a1f621e7-4b02-47cf-9a33-585c5af146c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.088649s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_admin_create_volume_target [0.078628s] ... 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/a472f157-e8bd-4ff1-9939-d443ce65b7b2
Openstack-Request-Id: req-e2916428-85bc-4ad7-bee1-21760038d00a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "a472f157-e8bd-4ff1-9939-d443ce65b7b2", "created_at": "2025-03-28T10:19:27.180543+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a472f157-e8bd-4ff1-9939-d443ce65b7b2", "rel": "self"}, {"href": "http://localhost/volume/targets/a472f157-e8bd-4ff1-9939-d443ce65b7b2", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_drivers_raid_logical_disk_properties_get_reader [0.073956s] ... 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-ba3310b9-36ee-48e2-b3e8-5f4962f3fdf0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.084200s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_owner_service_create_volume_target [0.078678s] ... 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/a7442a76-fe1b-43a4-a283-e38b275663b5
Openstack-Request-Id: req-214b45fa-a47c-4218-965c-d4bea9ab90a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "a7442a76-fe1b-43a4-a283-e38b275663b5", "created_at": "2025-03-28T10:19:27.260044+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a7442a76-fe1b-43a4-a283-e38b275663b5", "rel": "self"}, {"href": "http://localhost/volume/targets/a7442a76-fe1b-43a4-a283-e38b275663b5", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_drivers_vendor_passthru_methods_get_admin [0.079197s] ... 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-acbe31cc-90f2-4cea-adb9-1573ebfa97a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.087581s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_owner_manager_create_volume_target [0.090144s] ... 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/b07648c8-a0d0-4c6a-ace8-b720d137be8e
Openstack-Request-Id: req-3e10e6f3-9878-4e88-b7a8-d67ba3d89240
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b07648c8-a0d0-4c6a-ace8-b720d137be8e", "created_at": "2025-03-28T10:19:27.344665+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b07648c8-a0d0-4c6a-ace8-b720d137be8e", "rel": "self"}, {"href": "http://localhost/volume/targets/b07648c8-a0d0-4c6a-ace8-b720d137be8e", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_drivers_vendor_passthru_methods_get_member [0.067514s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7353ea21-f265-49e8-adb4-6002c135b4ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.044206s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_lessee_admin_create_volume_target [0.088695s] ... 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/9da10b4f-8c6a-4abb-a119-8f938527498e
Openstack-Request-Id: req-358a0d7a-7be9-49f4-8a76-821b7246c448
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9da10b4f-8c6a-4abb-a119-8f938527498e", "created_at": "2025-03-28T10:19:27.441208+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9da10b4f-8c6a-4abb-a119-8f938527498e", "rel": "self"}, {"href": "http://localhost/volume/targets/9da10b4f-8c6a-4abb-a119-8f938527498e", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.063719s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_drivers_vendor_passthru_methods_get_reader [0.077151s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-967ad06d-f8b7-4311-aee0-9dad7164eccd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_lessee_manager_create_volume_target [0.074229s] ... 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/6c4410d2-5f07-48d7-8734-0e1e56d6586f
Openstack-Request-Id: req-31a3bb60-653b-4f37-9433-1012b84ffaab
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6c4410d2-5f07-48d7-8734-0e1e56d6586f", "created_at": "2025-03-28T10:19:27.516550+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6c4410d2-5f07-48d7-8734-0e1e56d6586f", "rel": "self"}, {"href": "http://localhost/volume/targets/6c4410d2-5f07-48d7-8734-0e1e56d6586f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.066873s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_drivers_vendor_passthru_get_admin [0.102918s] ... 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-52d7324f-c6e3-4e2e-9d1a-f4c22cf02ecf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.070030s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_get_member [0.062780s] ... 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-a84d2023-a092-4c61-915a-61a56d68d5c8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.045884s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_third_party_admin_cannot_create_volume_target [0.134711s] ... 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-e4d7ea35-818e-46b2-9220-7c09a480c22d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.051849s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_drivers_vendor_passthru_get_reader [0.070787s] ... 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-2c14d95d-6fbe-4d29-b2f7-700ac3af9293
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.050696s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_412_owner_member_can_patch_volume_target [0.111615s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-68841274-bc62-47c8-88d7-020df74faf98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_post_admin [0.074776s] ... 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-ef1b6abb-4962-4286-8cf9-d262f1cc0c17
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit_stream_optimized [3.139878s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.089547s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_drivers_vendor_passthru_post_member [0.066795s] ... 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-a2eec3fd-424e-4f15-b981-2396aa0f8ef6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_owner_service_can_patch_volume_target [0.125750s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-d349dc26-62a1-4da4-b298-04f87f0793fc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_offset [0.100441s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_post_reader [0.065913s] ... 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-70e9029e-5211-4333-af16-b8ff0a331646
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.093287s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_lessee_admin_can_patch_volume_target [0.082588s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-63884548-2c1b-4653-b9a9-ac7016228fb9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_drivers_vendor_passthru_put_admin [0.064266s] ... 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-40ef8eaf-6aeb-41a6-96c1-544109a8ccde
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_offset_stream_optimized [0.092835s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_invalid [0.021778s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.091342s] ... ok
{0} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_invalid_type [0.019586s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_drivers_vendor_passthru_put_member [0.069586s] ... 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-828f64cb-8e73-45eb-a0b2-86737e4494da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_lessee_manager_can_patch_volume_target [0.084390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-4efd1b75-2a43-44db-81f4-bc3e85a71ae6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_put_reader [0.064524s] ... 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-c14bbf76-2059-40ac-ac64-1312bf269037
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.092155s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_lessee_member_cannot_patch_volume_target [0.081535s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-7d6ca47b-67cb-4c17-985c-2f98dadd1da2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.055133s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_delete_admin [0.063738s] ... 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-8a0b7cdd-44cd-41ad-bc53-aa1fb345b40d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_417_third_party_admin_cannot_patch_volume_target [0.084905s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-322992bf-0baf-459d-a858-40c1c317bc29
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.053640s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_drivers_vendor_passthru_delete_reader [0.059443s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d02c468b-d1b1-4e9c-911e-b21db19881b1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration [0.058700s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_nodes_bios_get_admin [0.066343s] ... 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-695e65c5-def5-472a-8920-a09d742c3047
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": [{"created_at": "2025-03-28T10:19:28.302733+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_service_cannot_patch_volume_target [0.127166s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/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-f9a36bba-29bb-4759-bd7d-83f257c5a8f3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.055293s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_nodes_bios_get_member [0.068304s] ... 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-fa962f6f-3064-4eb5-8f51-c7c8a7bf3698
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": [{"created_at": "2025-03-28T10:19:28.375052+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"}]}]}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.078104s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.025832s] ... ok
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_nodes_bios_get_reader [0.082199s] ... 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-79b3bb5c-6e9e-404f-a79f-78a848be80e5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": [{"created_at": "2025-03-28T10:19:28.444123+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_owner_admin_can_delete_volume_target [0.127534s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b1a38faa-f75e-43d0-9a7c-4746a8b138b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.024525s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.027208s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.025957s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_nodes_bios_bios_setting_get_admin [0.086857s] ... 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-4936fa93-fd6b-4261-9fda-bf34368fd673
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"FAKE_SETTING": {"created_at": "2025-03-28T10:19:28.543931+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device [0.031996s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode [0.031246s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties [0.029172s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_nodes_bios_bios_setting_get_member [0.083546s] ... 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-79546828-e959-45d2-8f7b-260d88664a44
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"FAKE_SETTING": {"created_at": "2025-03-28T10:19:28.630170+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"}]}}
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_owner_manager_can_delete_volume_target [0.186917s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-7ab71d38-8461-46be-babf-9a8d4549a270
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data [0.045960s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices [0.040918s] ... ok
/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)
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes [0.067992s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_bios_setting_get_reader [0.146429s] ... 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-8fbd9ded-963e-4bb4-86e0-29dc0a38ce7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"FAKE_SETTING": {"created_at": "2025-03-28T10:19:28.763547+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.common.test_format_inspector.TestFormatInspectors.test_vmdk_stream_optimized [0.766411s] ... ok
{0} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.006299s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_lessee_admin_can_delete_volume_target [0.160363s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-7102a2dd-df40-430d-aee8-020c6065fd9b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.021134s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi [0.072930s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default [0.025295s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller [0.037784s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail [0.069859s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_conductors_get_admin [0.133168s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-073eb8fd-29c0-4026-98df-65c5a2ee5f78
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_images.IronicImagesTestCase.test_download_size [0.046959s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device [0.046798s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_can_delete_volume_target [0.154921s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-59b63f15-123c-4fdd-8a8d-3b8e87101c70
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.058843s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail [0.038457s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode [0.045765s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.050809s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_conductors_get_member [0.130087s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3380f9fa-c181-40da-9c46-95e8e5562cae
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_combined_algo [0.037585s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail [0.051370s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_owner_member_cannot_delete_volume_target [0.146790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-99117ec9-9aa8-46e5-9e71-9c64984f8bdf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate [0.040933s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_no_checksum_algo [0.045470s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_with_checksum [0.023604s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_with_checksum_mismatch [0.021956s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_conductors_get_reader [0.136978s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-40e6584e-a220-4307-b1d4-051540e5c19a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.020154s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.019003s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw [0.028134s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_lessee_member_cannot_delete_volume_target [0.152714s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ce21eacf-1164-49a2-8b8e-130456005bfa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_iso [0.024887s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.021864s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.019015s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_conductors_hostname_get_admin [0.135747s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f9401a36-a49e-4763-8327-69327986c4c9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:19:29.314067+00:00", "updated_at": "2025-03-28T10:19:29.314929+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.common.test_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.022125s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.024443s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.024981s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state [0.280928s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.024685s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_third_party_admin_cannot_delete_volume_target [0.152189s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f06e661c-63cf-4a6e-8877-27a232473292
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties [0.031673s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.020365s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type [0.018416s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_conductors_hostname_get_member [0.135386s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1cd9ec2d-29ad-4419-b5ee-93b9968d3351
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:19:29.447136+00:00", "updated_at": "2025-03-28T10:19:29.450077+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states [0.035261s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error [0.023618s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.034918s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state [0.055616s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.019560s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_service_cannot_delete_volume_target [0.143753s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1a42d3fa-c002-4c87-8b1f-d2bf8b889886
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.029621s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail [0.039919s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_hostname_get_reader [0.129069s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-754decfb-04ce-444c-85fb-aa41a788d77a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"created_at": "2025-03-28T10:19:29.587505+00:00", "updated_at": "2025-03-28T10:19:29.590325+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached [0.043478s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout [0.049226s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate [0.032771s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_owner_reader_can_get_volume_connectors [0.155599s] ... 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-4679470d-18a1-48a2-abc2-bab15eafb8e2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties [0.030725s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_allocations_post_admin [0.135310s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-8206834d-b35f-487c-99da-ac4942a54ad3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order [0.034995s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller [0.040461s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit [0.252266s] ... ok
{2} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate [0.039210s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.026399s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.022002s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.049869s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.018393s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_allocations_post_member [0.151990s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-3dff664c-7c41-490f-b86b-081e88ccdb28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.019855s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_owner_service_can_get_volume_connectors [0.179643s] ... 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-dbf9be07-1a1a-42b6-b85f-d8d601d0eacd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.020125s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.061608s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.019027s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.039796s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.043363s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.039301s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_lessee_reader_can_get_node_volume_connectors [0.140242s] ... 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-427b3472-8638-498d-b4b0-1bae29146703
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_allocations_post_reader [0.155692s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c58b0ce3-1dbf-41b4-b9b1-3729cb5de212
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.046047s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.097483s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.047315s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.087692s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.039485s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_allocations_get_admin [0.135929s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-11c9dddd-e856-414e-b83a-a8b1dbc450d7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "de23a99d-38a5-4bf9-8689-6403fb8411e0", "created_at": "2025-03-28T10:19:30.163171+00:00", "updated_at": "2025-03-28T10:19:30.169636+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/de23a99d-38a5-4bf9-8689-6403fb8411e0", "rel": "self"}, {"href": "http://localhost/allocations/de23a99d-38a5-4bf9-8689-6403fb8411e0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_third_party_admin_cannot_get_node_volume_connectors [0.138667s] ... 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-72a2d648-ba4e-4c5f-8f01-32df5767d813
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_invalid_json [0.043298s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [0.053160s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_service_cannot_get_node_volume_connectors [0.081670s] ... 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-849650ec-f34f-488e-99ad-ec3f9f0d4200
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.109352s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.046556s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.042193s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_allocations_get_member [0.174156s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b303c173-da1e-4050-9e96-fe394d07497b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "1ed8cbee-7ac4-4b39-b255-0167857ca5b0", "created_at": "2025-03-28T10:19:30.295440+00:00", "updated_at": "2025-03-28T10:19:30.317480+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/1ed8cbee-7ac4-4b39-b255-0167857ca5b0", "rel": "self"}, {"href": "http://localhost/allocations/1ed8cbee-7ac4-4b39-b255-0167857ca5b0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_432_owner_reader_can_get_node_volume_targets [0.100531s] ... 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-0a4f50c8-03c2-4ba4-8257-c8e5eab6e736
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.105413s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error [0.061949s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_service_can_read_get_node_volume_targets [0.091329s] ... 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-c6e98f0e-1b42-4fcc-9340-7e429cfdc7f1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.047974s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.111054s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_get_reader [0.143515s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fe448a6f-c705-480e-a84d-abd6597dd4a7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "55a26980-9d8b-48ca-9993-82f25bf947f7", "created_at": "2025-03-28T10:19:30.479827+00:00", "updated_at": "2025-03-28T10:19:30.489692+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/55a26980-9d8b-48ca-9993-82f25bf947f7", "rel": "self"}, {"href": "http://localhost/allocations/55a26980-9d8b-48ca-9993-82f25bf947f7", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http [0.053822s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_reader_can_get_node_volume_targets [0.092131s] ... 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-0333df1c-976b-448e-a7a6-bb4e05554107
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error [0.041607s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.116724s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.047192s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_third_part_admin_cannot_read_node_volume_targets [0.066566s] ... 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-9db3843a-7f76-44df-803e-a3037feb8758
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_allocations_allocation_id_get_admin [0.151161s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/5344b461-ba48-4b42-973b-85cce5a899ad WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-567b39c0-f13d-4694-8639-be76a43fbe0a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5344b461-ba48-4b42-973b-85cce5a899ad", "created_at": "2025-03-28T10:19:30.624560+00:00", "updated_at": "2025-03-28T10:19:30.639586+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/5344b461-ba48-4b42-973b-85cce5a899ad", "rel": "self"}, {"href": "http://localhost/allocations/5344b461-ba48-4b42-973b-85cce5a899ad", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift [0.047093s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.097483s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.047048s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_service_cannot_read_node_volume_targets [0.093041s] ... 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-c8329f04-4c83-4c31-a938-0f2224024dcd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.050352s] ... ok
{0} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.083938s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_allocations_allocation_id_get_member [0.142251s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/dd0adf0e-d8fb-4d49-ae1c-741b3ec0c1d1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-86e23b5d-296c-41a2-a4ef-c1e326b37350
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "dd0adf0e-d8fb-4d49-ae1c-741b3ec0c1d1", "created_at": "2025-03-28T10:19:30.782106+00:00", "updated_at": "2025-03-28T10:19:30.793869+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/dd0adf0e-d8fb-4d49-ae1c-741b3ec0c1d1", "rel": "self"}, {"href": "http://localhost/allocations/dd0adf0e-d8fb-4d49-ae1c-741b3ec0c1d1", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.051143s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.035372s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.062656s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_owner_reader_cannot_get_drivers [0.159817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-18b25098-cc79-403d-ae56-ae10fcc0138d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.037843s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.022316s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode [0.050787s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.043570s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.033571s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params [0.062048s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_allocation_id_get_reader [0.195968s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/6249a039-cb5c-4966-ad1d-58e0d3620842 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-523e29ba-8107-4ead-bc5c-14c74be84b06
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6249a039-cb5c-4966-ad1d-58e0d3620842", "created_at": "2025-03-28T10:19:30.964094+00:00", "updated_at": "2025-03-28T10:19:30.968804+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/6249a039-cb5c-4966-ad1d-58e0d3620842", "rel": "self"}, {"href": "http://localhost/allocations/6249a039-cb5c-4966-ad1d-58e0d3620842", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode [0.117282s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_allocations_allocation_id_patch_admin [0.158061s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/17d7aecb-db51-4f06-a7e7-46255b1363ef WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-db0e93fd-7dea-4088-83f9-f32423905d2a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "17d7aecb-db51-4f06-a7e7-46255b1363ef", "created_at": "2025-03-28T10:19:31.113327+00:00", "updated_at": "2025-03-28T10:19:31.201081+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/17d7aecb-db51-4f06-a7e7-46255b1363ef", "rel": "self"}, {"href": "http://localhost/allocations/17d7aecb-db51-4f06-a7e7-46255b1363ef", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image [0.086927s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_lessee_reader_cannot_get_drivers [0.351555s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-65e01ce4-d144-48a8-9837-630490526eb0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image [0.053426s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_third_party_admin_cannot_get_drivers [0.063419s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-9e46e3fb-4455-4cb5-86e2-1c2115d81d40
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info [0.075580s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance [0.045523s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_service_cannot_get_drivers [0.074378s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-26136e1e-9e3b-4756-8772-ed94e3db262e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [0.416757s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_reader_cannot_get_drivers_vendor_passthru [0.070226s] ... 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-fa0986a2-f917-4767-87a8-1cbc87e56e7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk [0.082701s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_cannot_get_drivers_vendor_passthru [0.067170s] ... 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-79cdcd5b-0852-4edb-8c00-39f61bfa4809
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk [0.099477s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_drivers_vendor_passthru [0.069864s] ... 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-69f9b93c-3025-4ef2-ba4c-544fda3a12b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_298_allocations_allocation_id_patch_member [0.447328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/79730727-56c8-4a12-9400-b30d8f71a223 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ec58350c-f0ca-4615-b347-56ed423be9e4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "79730727-56c8-4a12-9400-b30d8f71a223", "created_at": "2025-03-28T10:19:31.270431+00:00", "updated_at": "2025-03-28T10:19:31.659192+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/79730727-56c8-4a12-9400-b30d8f71a223", "rel": "self"}, {"href": "http://localhost/allocations/79730727-56c8-4a12-9400-b30d8f71a223", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image [0.150477s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_drivers_vendor_passthru [0.160003s] ... 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-5b334aa3-81ce-4960-9e8b-95651680da93
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image [0.054691s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_allocations_allocation_id_patch_reader [0.130357s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/f9784b2e-b837-4ab1-88dc-946e580bb9cc WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9a3b83a6-4ab9-4948-8bf3-93a9dd974231
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image [0.083937s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_allocations_allocation_id_delete_admin [0.146890s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/eb85862b-e3fd-4485-af87-8b037304b4d4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-01568609-5dd0-427b-b234-7a1adb2cb6dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.077585s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_bios_setttings [0.182900s] ... 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-9261e861-e625-4519-9da9-645b2e4c716e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": []}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step [0.083234s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [0.640707s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_allocations_allocation_id_delete_member [0.137698s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/5810a510-c19d-4e2f-ab20-16e690ea020d GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-2902858c-58cf-4947-aed2-c8ced17739da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.070068s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_lessee_reader_can_get_bios_settings [0.152676s] ... 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-69484fbe-f379-46b3-8995-7629ecbd74eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": []}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.074322s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_third_party_admin_cannot_get_bios_settings [0.087040s] ... 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-3eb93a66-2c54-4e2b-be4b-331e11ec77f4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_delete_reader [0.136006s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/f2f808ec-93f4-4ca0-94ad-c07b1008dc83 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-886c25e6-fdcc-4f7a-b802-d4e701f8d103
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.081564s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_service_can_get_bios_setttings_owner_project [0.083305s] ... 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-71adb6b7-ef6b-4314-bcfb-73e9446932e3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"bios": []}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_service_cannot_get_bios_setttings [0.066806s] ... 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-ba68b036-5040-46f1-8202-47b0e0d6fc1c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_nodes_allocation_get_admin [0.138933s] ... 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-0d255eb7-1c1a-451a-8674-2d8114e9cfba
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "cd1ac322-d887-4abc-9d40-b1c32f8238e1", "created_at": "2025-03-28T10:19:32.306605+00:00", "updated_at": "2025-03-28T10:19:32.318688+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/cd1ac322-d887-4abc-9d40-b1c32f8238e1", "rel": "self"}, {"href": "http://localhost/allocations/cd1ac322-d887-4abc-9d40-b1c32f8238e1", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.114955s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_conductors [0.065191s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3710c5dd-40e2-4a3a-be70-b5f36a29ac9a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate [0.047268s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios [0.062659s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_conductors [0.074128s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cbae5211-07c1-4afc-b3bd-841b7801a005
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_304_nodes_allocation_get_member [0.140015s] ... 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-3933911e-0d43-41b7-b201-ec30dd1c4071
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "80a05005-e425-4099-9cd9-f7f32d293206", "created_at": "2025-03-28T10:19:32.455052+00:00", "updated_at": "2025-03-28T10:19:32.463634+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/80a05005-e425-4099-9cd9-f7f32d293206", "rel": "self"}, {"href": "http://localhost/allocations/80a05005-e425-4099-9cd9-f7f32d293206", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection [0.057277s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_conductors [0.070394s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8d6561c0-69e6-41f4-9c6e-f6298e242ce4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.038000s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance [0.048308s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_owner_reader_can_get_allocations [0.076943s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35ea3663-232d-4687-ab3e-f6b4dfe3acdc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "3aeb6ee5-a30e-4ee3-bed0-77aa405a75b0", "created_at": "2025-03-28T10:19:32.644839+00:00", "updated_at": "2025-03-28T10:19:32.646138+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/3aeb6ee5-a30e-4ee3-bed0-77aa405a75b0", "rel": "self"}, {"href": "http://localhost/allocations/3aeb6ee5-a30e-4ee3-bed0-77aa405a75b0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_305_nodes_allocation_get_reader [0.151792s] ... 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-c08d487b-8081-4b52-86e2-b2940dbbcac5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ac80db39-1fff-441c-8321-cd1acab6ba0b", "created_at": "2025-03-28T10:19:32.603430+00:00", "updated_at": "2025-03-28T10:19:32.612454+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/ac80db39-1fff-441c-8321-cd1acab6ba0b", "rel": "self"}, {"href": "http://localhost/allocations/ac80db39-1fff-441c-8321-cd1acab6ba0b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver [0.057825s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [0.654104s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.050432s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_454_lessee_reader_can_get_allocations [0.098555s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-269a5acd-8566-4800-b98c-6d396cf38605
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": [{"uuid": "5f3fef5c-ebae-4e0f-baa3-3b1f7a1ced8a", "created_at": "2025-03-28T10:19:32.729908+00:00", "updated_at": "2025-03-28T10:19:32.731211+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/5f3fef5c-ebae-4e0f-baa3-3b1f7a1ced8a", "rel": "self"}, {"href": "http://localhost/allocations/5f3fef5c-ebae-4e0f-baa3-3b1f7a1ced8a", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_306_nodes_allocation_delete_admin [0.146379s] ... 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-ab511aaf-d431-432f-ba11-b2175b0108b2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_owner_reader_can_get_their_allocation [0.099835s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/dd130d64-52f9-4d91-9840-b3b94d01b3c8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2ae2b0b-6193-4def-bd2e-1db08e00724c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "dd130d64-52f9-4d91-9840-b3b94d01b3c8", "created_at": "2025-03-28T10:19:32.825183+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/dd130d64-52f9-4d91-9840-b3b94d01b3c8", "rel": "self"}, {"href": "http://localhost/allocations/dd130d64-52f9-4d91-9840-b3b94d01b3c8", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_456_lessee_reader_can_get_their_allocation [0.068921s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/7f76300a-3aea-495c-82b2-8c325d297528 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-305d4601-fe96-4282-b63c-f701ffc3ab22
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "7f76300a-3aea-495c-82b2-8c325d297528", "created_at": "2025-03-28T10:19:32.917891+00:00", "updated_at": "2025-03-28T10:19:32.919257+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/7f76300a-3aea-495c-82b2-8c325d297528", "rel": "self"}, {"href": "http://localhost/allocations/7f76300a-3aea-495c-82b2-8c325d297528", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_307_nodes_allocation_delete_member [0.138632s] ... 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-7ef4b3e4-f6de-4c47-8bdb-f5aaa66ac1b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_457_owner_admin_can_delete_their_allocation [0.083289s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/ae2528af-9615-4852-b0dd-636002b289b6 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-1e4ec02d-fb19-4bf8-b9c5-344e6ca02ce7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue [0.264094s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.051867s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_manager_can_delete_their_allocation [0.072704s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/b5795123-ed08-48e9-be8d-799937db8f84 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-8c5383dd-9a29-4d29-b175-bc1080c11dc7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list [0.023923s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.024304s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_308_nodes_allocation_delete_reader [0.143966s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7cfc1e0e-e78a-4e5e-b96e-d5897909b9eb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.025876s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_459_lessee_admin_can_delete_their_allocation [0.075619s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/f4a159d9-5253-4e8f-89b8-8408b626a78b GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-5f2c00e4-7c80-4b34-ad00-ffa8257f8735
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.025540s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.037624s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.024493s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_460_lessee_manager_can_delete_their_allocation [0.076644s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/8e119531-da81-4b3a-b13e-b1453ac990a9 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-60aaf26e-2c66-4b9c-8d88-e81cd1339f28
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.061155s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_309_deploy_templates_post_admin [0.182654s] ... 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/cabffb84-4102-46f2-9e00-e31b7b862677
Openstack-Request-Id: req-cafa8487-6b1f-4cd3-980a-0666795bab17
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "cabffb84-4102-46f2-9e00-e31b7b862677", "created_at": "2025-03-28T10:19:33.289866+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/cabffb84-4102-46f2-9e00-e31b7b862677", "rel": "self"}, {"href": "http://localhost/deploy_templates/cabffb84-4102-46f2-9e00-e31b7b862677", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_461_owner_member_can_delete_their_allocation [0.078157s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/330c16f7-9fb7-4487-95c8-334da0e03d1e GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-edd3323b-5126-48be-a189-61c8ecc7c7f2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.091854s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_462_lessee_member_can_delete_their_allocation [0.083932s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/56a34d0f-a9f4-4cb6-afa4-0e677abd99fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-379374dd-9ef6-4be0-aa02-9beb6b207641
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_deploy_templates_post_member [0.175486s] ... 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-491bf9a2-6504-4296-8fc7-a38d9fa4b65b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None [0.111819s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_463_owner_member_can_patch_allocation [0.122022s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/3e2cddf9-7540-4676-99ab-232ff8fb1bb0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0229c87b-4a2b-4ad7-853f-dbc9520009e8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "3e2cddf9-7540-4676-99ab-232ff8fb1bb0", "created_at": "2025-03-28T10:19:33.490929+00:00", "updated_at": "2025-03-28T10:19:33.541053+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/3e2cddf9-7540-4676-99ab-232ff8fb1bb0", "rel": "self"}, {"href": "http://localhost/allocations/3e2cddf9-7540-4676-99ab-232ff8fb1bb0", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false [0.085977s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_member_can_patch_allocation [0.096485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/a9a44fd9-e9b9-415d-98b4-c9457ea089d0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f76b768e-3d72-4524-978e-9c5c97c013da
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "a9a44fd9-e9b9-415d-98b4-c9457ea089d0", "created_at": "2025-03-28T10:19:33.592660+00:00", "updated_at": "2025-03-28T10:19:33.635893+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/a9a44fd9-e9b9-415d-98b4-c9457ea089d0", "rel": "self"}, {"href": "http://localhost/allocations/a9a44fd9-e9b9-415d-98b4-c9457ea089d0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_deploy_templates_post_reader [0.157544s] ... 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-d52781ee-651f-4e01-ae48-a33e398604ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.073594s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.040906s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_deploy_templates_get_admin [0.094081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-66bc6c67-d04d-48d9-a88e-e6ba03946054
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "6f87c4a1-7e15-4339-9ee8-b5834fb7ef66", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6f87c4a1-7e15-4339-9ee8-b5834fb7ef66", "rel": "self"}, {"href": "http://localhost/deploy_templates/6f87c4a1-7e15-4339-9ee8-b5834fb7ef66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true [0.046556s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default [0.050803s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_deploy_templates_get_member [0.070790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c5f57a7b-7a20-4acc-bcd7-e0cdc52f700f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "11d6c0b0-cfcd-4085-bcb3-c8a2376776d3", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/11d6c0b0-cfcd-4085-bcb3-c8a2376776d3", "rel": "self"}, {"href": "http://localhost/deploy_templates/11d6c0b0-cfcd-4085-bcb3-c8a2376776d3", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.031353s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_can_get_allocations [0.239439s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e94478de-40cb-447c-aded-b80dcf10ef9a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"allocations": []}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.054341s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_314_deploy_templates_get_reader [0.074625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c9de2f6-45fe-4b2b-8380-46b7e2dcdf9c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"deploy_templates": [{"uuid": "6558e486-d0be-4176-9d52-3b2924e5bbf9", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6558e486-d0be-4176-9d52-3b2924e5bbf9", "rel": "self"}, {"href": "http://localhost/deploy_templates/6558e486-d0be-4176-9d52-3b2924e5bbf9", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.048755s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_315_deploy_templates_deploy_template_id_get_admin [0.077915s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/4de094d3-9f04-4679-b341-6b4b3422df86 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-59416acd-0278-4a70-8808-5191c95ccec8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4de094d3-9f04-4679-b341-6b4b3422df86", "created_at": "2025-03-28T10:19:33.936717+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/4de094d3-9f04-4679-b341-6b4b3422df86", "rel": "self"}, {"href": "http://localhost/deploy_templates/4de094d3-9f04-4679-b341-6b4b3422df86", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.058954s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_316_deploy_templates_deploy_template_id_get_member [0.068564s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/9ee1fb20-e4ae-49b4-97ef-acd413e81a57 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-00b775a3-eff2-4556-a822-5a1ed9f1fdfa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9ee1fb20-e4ae-49b4-97ef-acd413e81a57", "created_at": "2025-03-28T10:19:34.021292+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9ee1fb20-e4ae-49b4-97ef-acd413e81a57", "rel": "self"}, {"href": "http://localhost/deploy_templates/9ee1fb20-e4ae-49b4-97ef-acd413e81a57", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.050559s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_466_third_party_admin_can_create_allocation [0.208794s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-49d8a927-fb5c-4b03-86eb-7ee213b43c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.052039s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_deploy_template_id_get_reader [0.069607s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/ca7a7f13-b970-4a6a-aae9-3c00dd6788bb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af63b41b-02b0-4a9e-94de-2e91fd2c8296
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ca7a7f13-b970-4a6a-aae9-3c00dd6788bb", "created_at": "2025-03-28T10:19:34.082963+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ca7a7f13-b970-4a6a-aae9-3c00dd6788bb", "rel": "self"}, {"href": "http://localhost/deploy_templates/ca7a7f13-b970-4a6a-aae9-3c00dd6788bb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token [1.388307s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates [0.052075s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default [0.040637s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_deploy_template_id_patch_admin [0.094052s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/4251d95a-b634-4c21-896e-d0509c66de9d WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1f7f9104-fc3c-4bcd-ad61-c2e8fef69c87
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4251d95a-b634-4c21-896e-d0509c66de9d", "created_at": "2025-03-28T10:19:34.157578+00:00", "updated_at": "2025-03-28T10:19:34.206403+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/4251d95a-b634-4c21-896e-d0509c66de9d", "rel": "self"}, {"href": "http://localhost/deploy_templates/4251d95a-b634-4c21-896e-d0509c66de9d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error [0.053614s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_467_third_party_admin_cannot_create_allocation_with_owner_node [0.170921s] ... 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-e5d69723-7c85-453f-b11d-df98f8386a5f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.036329s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_deploy_template_id_patch_member [0.101042s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/fb323a66-7640-4ae1-9d9d-2d2147a08e2b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-48ba0724-4969-4e9d-a9a5-e5a50b1ce9bf
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.030928s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.025462s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.035339s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_patch_reader [0.075392s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/0172fbdf-7bc5-4e68-bac3-45c268b2277b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a5616551-6e49-4ee1-bda2-5f9006a8e38f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.052548s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_468_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.149570s] ... 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-02213e69-3a51-4391-955f-edfd3d182d7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_delete_admin [0.065739s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/5c50128e-29d5-4938-87e9-6ef4724a4b6c GOT Response: 204 No Content
Openstack-Request-Id: req-735c68c5-6802-4482-b601-52560c397fea
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url [0.039649s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_delete_member [0.067447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/3b88d00b-3336-47df-81a9-d291d6cae126 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b98a1d0f-c2dd-49ce-ba04-3ac6f18ac594
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url [0.057246s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.042017s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_delete_reader [0.060278s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/384fe327-75fb-43db-afca-9b75f11d3777 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3a755618-4aa8-45eb-9a9d-45539ec32fd9
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_469_owner_admin_can_create_allocation_with_their_uuid [0.163020s] ... 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-c75866fe-7224-4f5d-b4a6-d60220918c04
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.053637s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_324_chassis_post_admin [0.073736s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/chassis/99c68e74-3aa1-4e6e-bf8e-e4ac36b8ec98
Openstack-Request-Id: req-e0eba985-4624-45d7-96de-e95c43038c7a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "99c68e74-3aa1-4e6e-bf8e-e4ac36b8ec98", "created_at": "2025-03-28T10:19:34.656977+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/99c68e74-3aa1-4e6e-bf8e-e4ac36b8ec98", "rel": "self"}, {"href": "http://localhost/chassis/99c68e74-3aa1-4e6e-bf8e-e4ac36b8ec98", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/99c68e74-3aa1-4e6e-bf8e-e4ac36b8ec98/nodes", "rel": "self"}, {"href": "http://localhost/chassis/99c68e74-3aa1-4e6e-bf8e-e4ac36b8ec98/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode [0.033141s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.034948s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.025499s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_325_chassis_post_member [0.073131s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7c336d90-894a-488d-9bbe-be4c91feffd8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_470_owner_manager_can_create_allocation_with_their_uuid [0.158008s] ... 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-12655f01-396e-47c8-8173-4e4c26e0c1f6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.051384s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.029207s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_326_chassis_post_reader [0.076181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e6d6711e-25af-48a1-b71a-84c8002581b3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.050698s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [0.713278s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_327_chassis_get_admin [0.074248s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0cf13c3c-7db2-4511-8fb0-de60e545cc8d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_471_third_party_admin_cannot_read_an_allocation [0.131217s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ec246885-873a-4cc4-875f-7a855d05db54 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8a4db502-a4f0-4b25-9cf1-dd1a61f058cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ec246885-873a-4cc4-875f-7a855d05db54 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.077629s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.083053s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_chassis_get_member [0.067032s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a963135-2895-48b8-8b9e-fc981518a402
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.051811s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.070738s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_get_reader [0.069579s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-48f4efaf-635c-4d2a-b3c9-74fbbba8fe05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.056885s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.062125s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_third_party_admin_cannot_patch_an_allocation [0.143563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/3dd75c61-c065-41ba-99b1-aaa399067c0c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-25387ec5-0448-4c23-ae93-5141aaa38fe1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 3dd75c61-c065-41ba-99b1-aaa399067c0c could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_get_service [0.063182s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8fec0191-960d-41ab-bf4c-336ecd7fe910
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.058058s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.047358s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_detail_get_admin [0.069624s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-70c676e4-49f2-43c6-829f-95fb4eda8e07
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.127608+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.041622s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.120757s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_332_chassis_detail_get_member [0.063131s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-94756ba5-23d4-4d70-9db9-11987a3cf0f5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.198666+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.033492s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_third_party_admin_cannot_delete_an_allocation [0.141866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/803ee14e-229e-4373-a321-2fc4b2e5ad90 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d81995af-79d1-4986-920b-b2af01d3d89b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 803ee14e-229e-4373-a321-2fc4b2e5ad90 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.045933s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_detail_get_reader [0.072942s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4231b181-1b27-4230-92c0-5f98bf7a89dc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.266297+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.064657s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.157778s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_334_chassis_chassis_id_get_admin [0.063480s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e148d56c-0b73-4780-8986-43e449311e78
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.334660+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.042231s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.028366s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_474_owner_reader_can_read_node_allocation [0.175549s] ... 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-af225a4b-dcf4-4d08-abea-b1d4128f70c7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "06964e7a-2589-4f1f-b44f-6b23d0bc4f02", "created_at": "2025-03-28T10:19:35.309581+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/06964e7a-2589-4f1f-b44f-6b23d0bc4f02", "rel": "self"}, {"href": "http://localhost/allocations/06964e7a-2589-4f1f-b44f-6b23d0bc4f02", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.028637s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_chassis_id_get_member [0.080067s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6fba9718-e1db-45ed-b392-75d335ac997d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.401007+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.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.105367s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.030657s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_336_chassis_chassis_id_get_reader [0.070688s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0e4f4568-a94a-40f4-98d2-259beadaba30
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.489346+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_475_lessee_reader_can_read_node_allocation [0.162385s] ... 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-dfb2ad80-0864-4d5e-9f60-0b4c19090a74
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b1afa45b-8fcb-468a-b7a0-bada2511a20c", "created_at": "2025-03-28T10:19:35.506311+00:00", "updated_at": "2025-03-28T10:19:35.508054+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/b1afa45b-8fcb-468a-b7a0-bada2511a20c", "rel": "self"}, {"href": "http://localhost/allocations/b1afa45b-8fcb-468a-b7a0-bada2511a20c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.122489s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_chassis_id_patch_admin [0.089800s] ... 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-c86e3576-8e99-43e0-96d8-6ce45649cbc5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.561493+00:00", "updated_at": "2025-03-28T10:19:35.601236+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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.275876s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.170174s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_476_third_party_admin_cannot_read_node_allocation [0.195051s] ... 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-776eaecb-2286-4cd6-b9d4-2597b19a946a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.058522s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.076849s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.140613s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_chassis_id_patch_member [0.293732s] ... 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-ee1edfe2-c28c-4d51-8e09-a8d50ebde7e0
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-03-28T10:19:35.867873+00:00", "updated_at": "2025-03-28T10:19:35.895587+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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.062132s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.038984s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.100088s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false [0.038953s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_patch_reader [0.157996s] ... 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-abcc56b0-cffb-4976-b7e7-2825574709b7
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true [0.057883s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.113602s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error [0.112872s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_delete_admin [0.160046s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-84c85f32-daf6-48a6-bb4e-d913ef0f3201
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.130464s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported [0.072058s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_delete_member [0.128876s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c9d7529c-89ad-4f29-93f6-b261af90c51c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http [0.086559s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_owner_admin_can_delete_allocation [0.584978s] ... 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-3da42ec2-737a-4c7d-bc94-7568f51eee8e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.137993s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.047773s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_delete_reader [0.084508s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bc2aa175-acf2-41bf-a47b-3e8f56daecca
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.095406s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data [0.033116s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_478_owner_manager_can_delete_allocation [0.118672s] ... 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-8f46b9c1-7b6d-47d3-ba69-6119a9560b48
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.029562s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.049961s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_delete_service [0.107094s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6f7e295f-dc79-4cfc-b5d6-66e2bc5f7049
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.052811s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.064038s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.030190s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.042138s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_479_lessee_admin_can_delete_allocation [0.127373s] ... 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-3762b95c-85fb-4fb9-ba28-18b1d46523ed
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.030281s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.038997s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.044983s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_480_lessee_manager_not_delete_allocation [0.074222s] ... 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-936c6ff3-573d-45c5-8f59-7b75d6eaff00
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.055642s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_node_history_get_admin [0.149203s] ... 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-f3869463-e7fc-4d4e-ba77-90e4028df3ad
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "71b2551e-46bd-4db0-989c-689d9ee2bd40", "created_at": "2025-03-28T10:19:36.649050+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/71b2551e-46bd-4db0-989c-689d9ee2bd40", "rel": "self"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.042692s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.070359s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_481_third_party_admin_cannot_delete_allocation [0.085945s] ... 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-7db2baa8-38d8-4b0a-a0aa-195a4235b18f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.039115s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.045110s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.053354s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.058680s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_node_history_get_member [0.149448s] ... 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-4afd327a-0a21-473c-8808-a910075adfa6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "915d7561-ba6a-4bfd-9dc5-c6d71dba84ee", "created_at": "2025-03-28T10:19:36.784019+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/915d7561-ba6a-4bfd-9dc5-c6d71dba84ee", "rel": "self"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_reader_cannot_get_deploy_templates [0.083463s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-743decac-16f2-4c82-8f7a-086cf2573731
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.039413s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.047252s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.045203s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_483_lessee_reader_cannot_get_deploy_templates [0.071349s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3ffbc6ff-7a58-4b73-ade1-72cb47c594ac
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.057267s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.048206s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_node_history_get_reader [0.134504s] ... 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-289ee056-ecf8-40ec-aaeb-754703768edd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "50f2b17e-9742-4578-9571-42ac8d77a9e0", "created_at": "2025-03-28T10:19:36.933509+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/50f2b17e-9742-4578-9571-42ac8d77a9e0", "rel": "self"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_484_third_party_admin_cannot_get_deploy_templates [0.070625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c4baade5-d7c9-4c23-93f6-0e3e5375c52a
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.067648s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.051675s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.037644s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.051228s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.041755s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_post_deploy_template [0.085941s] ... 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-84f44de0-83dd-43ed-83f3-2de226388041
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.TestRBACScopedRequests.test_system_scoped_347_node_history_get_service [0.129896s] ... 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-2f1af264-f878-4024-a2fa-30d068b2a7c6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "c46626ab-69b4-4ac3-80d4-9931489dded2", "created_at": "2025-03-28T10:19:37.075068+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c46626ab-69b4-4ac3-80d4-9931489dded2", "rel": "self"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values [0.022804s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.075296s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.024690s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.028734s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_348_node_history_get_entry_admin [0.076817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4309d871-d35c-4ecb-b40b-4f4150d9e0ea WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-24cf308b-134b-47c2-9542-c799d769d3cd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "4309d871-d35c-4ecb-b40b-4f4150d9e0ea", "created_at": "2025-03-28T10:19:37.158489+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/4309d871-d35c-4ecb-b40b-4f4150d9e0ea", "rel": "self"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_486_service_cannot_get_deploy_templates [0.097278s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-39783472-0283-4cb2-8727-c9dc7dd1863c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.025408s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.108232s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.053685s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_349_node_history_get_entry_member [0.078933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/ec878ec0-577b-4543-b5b1-345cf80617c4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9578b389-3405-4cca-847f-2a5e4d353b2f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ec878ec0-577b-4543-b5b1-345cf80617c4", "created_at": "2025-03-28T10:19:37.242388+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/ec878ec0-577b-4543-b5b1-345cf80617c4", "rel": "self"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_487_service_cannot_post_deploy_template [0.079953s] ... 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-23f6ad82-e66c-402d-a1f5-cf7a348a4c76
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [0.034864s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.042834s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.032505s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.026816s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.059812s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_488_owner_reader_cannot_access_chassis [0.085835s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4895e05e-f4ee-41ac-b4e7-8905ce2a9d91
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_350_node_history_get_entry_reader [0.120351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/67a53484-a046-4cbf-be5b-c68096e17ca7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-be05977a-640e-40cc-815b-fefcaa10e0cb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "67a53484-a046-4cbf-be5b-c68096e17ca7", "created_at": "2025-03-28T10:19:37.349113+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/67a53484-a046-4cbf-be5b-c68096e17ca7", "rel": "self"}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.065537s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.067690s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_489_lessee_reader_cannot_access_chassis [0.066421s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-0233648a-eb6c-4a3c-ad02-debe449d8c6e
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc [0.048376s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.026686s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.060659s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_490_third_party_admin_cannot_access_chassis [0.066177s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-96f19156-16db-4d79-932b-874980e297d8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.021779s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_inventory_get_admin [0.139110s] ... 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-6e9818ac-ce76-45d2-a605-2e5d7e11f107
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.039505s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_491_third_party_admin_cannot_create_chassis [0.069836s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4f9bcc38-3e98-4cf4-81be-01d60472a3dd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.078461s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.028400s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.043348s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_492_service_cannot_access_chassis [0.071443s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e0f18486-b9b7-4d7b-91c2-f6041bc16348
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.060722s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.046946s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_inventory_get_reader [0.153966s] ... 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-8b10a519-033c-4491-823a-c7cf300760d1
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.051019s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.019635s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_493_service_cannot_create_chassis [0.077773s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-00693644-6251-487d-9c42-f473f8cf56a2
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged [0.062100s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.030928s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.048454s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.038819s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_494_node_history_get_admin [0.085085s] ... 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-ea813126-9e53-49a6-a0d7-2bb71f8731b5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "5625cd94-895d-4a50-ab60-11155e5614c6", "created_at": "2025-03-28T10:19:37.761055+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/5625cd94-895d-4a50-ab60-11155e5614c6", "rel": "self"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload [0.029573s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_service [0.149868s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8d6b822a-64ea-408c-ae32-7126f05baea2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5857abef-a95d-4461-97ef-e9f7435ea4c3
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "8d6b822a-64ea-408c-ae32-7126f05baea2", "created_at": "2025-03-28T10:19:37.787759+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/8d6b822a-64ea-408c-ae32-7126f05baea2", "rel": "self"}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.038322s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.029517s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_495_node_history_get_member [0.088767s] ... 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-66f30b70-1486-48a4-8117-720f4abfdd26
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "9b9e60f1-90ff-4798-912a-e4f17ebdf1a0", "created_at": "2025-03-28T10:19:37.843025+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/9b9e60f1-90ff-4798-912a-e4f17ebdf1a0", "rel": "self"}]}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.030218s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_354_shard_get_shards [0.137205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1505681-6792-4459-a5ba-a8ee30a9e082
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"shards": [{"name": "None", "count": 3}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_node_history_get_reader [0.089122s] ... 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-701c34e1-a3ff-4453-93d4-659bcc57b2d5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "37fa0711-04fe-49d0-9653-8dbcc6365a97", "created_at": "2025-03-28T10:19:37.921710+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/37fa0711-04fe-49d0-9653-8dbcc6365a97", "rel": "self"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_497_node_history_get_service [0.075986s] ... 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-69fef966-9c4b-4817-bdcc-d904ceb92800
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"history": [{"uuid": "ff1d71ea-fdaa-412c-b577-c6440f52e701", "created_at": "2025-03-28T10:19:38.022101+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/ff1d71ea-fdaa-412c-b577-c6440f52e701", "rel": "self"}]}]}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.315618s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_498_node_history_get_service_cannot_be_retrieved [0.070873s] ... 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-9669df74-ef14-43c7-9351-ffa43559f6dc
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.231573s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.027474s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.100380s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.027765s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_499_node_history_get_entry_admin [0.077446s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/cc953a91-712f-45ae-8cfc-470d1929aa95 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8d0910e4-fc30-4b8e-ad11-3144ced41c7d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_shard_patch_set_node_shard [0.233055s] ... 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-e4ee3701-3bd0-4e4b-9890-996659490a6d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.027791s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.032738s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.076165s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.024687s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.018008s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.044715s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.023054s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.017166s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.033333s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_356_shard_patch_set_node_shard_disallowed [0.148030s] ... 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-752cdc5b-7406-4236-8988-fa89c2a87951
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.017358s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.021089s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.037495s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_500_node_history_get_entry_member [0.179617s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/ada88512-512a-4a5b-b8cc-792cdd400567 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1594b7de-131d-458b-86da-d393d295ec86
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ada88512-512a-4a5b-b8cc-792cdd400567", "created_at": "2025-03-28T10:19:38.267494+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/ada88512-512a-4a5b-b8cc-792cdd400567", "rel": "self"}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.026756s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.018575s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.031347s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.021177s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.032250s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.019825s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.019235s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.038767s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_501_node_history_get_entry_reader [0.121906s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/cf9d6215-0e4d-4c7f-b2aa-a1b28356155d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ab3eb00-0980-45af-a44b-f3f251b18b95
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "cf9d6215-0e4d-4c7f-b2aa-a1b28356155d", "created_at": "2025-03-28T10:19:38.468600+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/cf9d6215-0e4d-4c7f-b2aa-a1b28356155d", "rel": "self"}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.067944s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.067007s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_502_lessee_node_history_get_admin [0.086898s] ... 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-572dddd1-66af-4a50-b18d-4a964065a7b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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_357_parent_node_patch_by_admin [0.258757s] ... 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-b6d05f03-6ca3-49f5-b960-61bb3b261c98
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.064543s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.064930s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_503_lessee_node_history_get_member [0.088580s] ... 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-1e934625-73a5-4791-9e50-0127e9ae5105
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.105595s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.062658s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.018925s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.075216s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_504_lessee_node_history_get_reader [0.096275s] ... 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-be96e097-2329-4f79-834e-9ad468bbadb4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.025806s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.039531s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_358_parent_node_patch_by_member [0.214181s] ... 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-cbea8569-9b7f-47b8-8495-1afac56f6e05
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.039163s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.039300s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.043883s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_505_lessee_node_history_get_entry_admin [0.089309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7329278a-b1f3-4639-9d18-6b4728628a45 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-834e462c-c5cc-4ede-b975-5e028532f879
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"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.033087s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.054100s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_506_lessee_history_get_entry_member [0.068634s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4c945519-7287-488d-abd8-b89c2fd1cdc7 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-16feff5e-fd6b-4352-a790-23f1a2b071fd
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.035747s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_359_parent_node_patch_by_reader [0.148262s] ... 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-acc507c0-de4c-49f2-88ed-ea27659978aa
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_lessee_node_history_get_entry_reader [0.074267s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a148ad60-e61d-4b7d-8794-d4e0122468a8 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-181144c6-2100-4efa-a605-5e822a732f1b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.059788s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.131962s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.021258s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.053788s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.022362s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_owner_service_node_history_get_entry_reader [0.078748s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/34d69d76-630e-49c4-bcc8-0cbd04db10e2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0295f0b5-d273-48ae-933b-24d9103be072
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "34d69d76-630e-49c4-bcc8-0cbd04db10e2", "created_at": "2025-03-28T10:19:39.065249+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/34d69d76-630e-49c4-bcc8-0cbd04db10e2", "rel": "self"}]}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.051846s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.055573s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_nodes_firmware_component_get_admin [0.173275s] ... 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-8398eeda-e264-4d66-9f80-8ab738d9634d
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"firmware": [{"created_at": "2025-03-28T10:19:39.112892+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_third_party_admin_cannot_get_node_history [0.067320s] ... 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-762c05d2-5f2c-4a96-9e0b-f0a12fd0b231
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.054670s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.061606s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.053692s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_entry_service [0.078405s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/eb16ae21-0040-435d-ba41-baa94a211670 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-21b0172a-2436-4d5a-892d-d4938cc83feb
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.068221s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_361_nodes_firmware_component_get_member [0.145925s] ... 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-b9184208-05af-435b-bacd-c60a267b2982
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"firmware": [{"created_at": "2025-03-28T10:19:39.262164+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.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.076474s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_inventory_get_admin [0.079753s] ... 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-d4323567-2998-4019-b401-43ae363516a5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.067488s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean [0.047136s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_512_node_inventory_get_member [0.071368s] ... 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-1c1a71f8-5947-4b4c-85bf-d359f452eada
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.055763s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.053328s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_nodes_firmware_component_get_reader [0.142353s] ... 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-d2ba5994-f6ab-4348-aaa2-90acb80e0727
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"firmware": [{"created_at": "2025-03-28T10:19:39.406423+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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.059814s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.060341s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_513_node_inventory_get_reader [0.090739s] ... 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-c8ecff5a-a5b4-4467-9c8e-2d3323eb8044
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.058489s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-3daa1693-8c14-41f6-b458-a8be0d576934
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.052688s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.062259s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.052518s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-508e14fa-c19b-45b3-933d-98dbb76a7153
{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_514_lessee_node_inventory_get_admin [0.074555s] ... 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-36775de9-b228-4648-81bf-bb1ff4ac8e16
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.051756s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.072482s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.056703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-48409e20-52e8-4803-93b0-4c0a804f27ac
{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.059834s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.052898s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7ffe835a-51f8-45d8-876e-a6fb32d1f0d5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n   **args)\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n   result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_515_lessee_node_inventory_get_member [0.121098s] ... 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-dfe28a22-fc8b-4d4d-a984-387f951f093b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.057529s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-3b85fd4e-6bff-439d-985b-8624e77fd397
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.066132s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_516_lessee_node_inventory_get_reader [0.074685s] ... 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-12785319-766f-4d03-a7fe-8b7c8f7d388c
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.041682s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b297635d-f15d-47f4-ba05-fcf3e85e4a99
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.025267s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-c2a0295e-df25-4389-909b-14c6831ba462
{"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-24.1.4.dev12/ironic/api/method.py\\\", line 42, in callfunction\\n    result = f(self, *args, **kwargs)\\n\\n  File \\\"/builddir/build/BUILD/ironic-24.1.4.dev12/ironic/api/controllers/root.py\\\", line 43, 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\"}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.070923s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_517_shard_get_shards_disallowed [0.089756s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-62cd0adc-6254-43cf-972b-6d8e2356ecd5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:shards:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.054768s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.063293s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2aed0666-9979-4e6a-8c36-00d2461b786a
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.286718s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.049888s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4bf3a8a3-6ee1-4c53-accf-032404eaead3
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.052736s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.056512s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.024517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-5ea0ea49-b321-4dda-9b98-a8b5ff802172
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.024043s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-23672fe7-406b-423c-a98e-707347ba2eb1
{"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-24.1.4.dev12/ironic/api/method.py\\\", line 42, in callfunction\\n    result = f(self, *args, **kwargs)\\n\\n  File \\\"/builddir/build/BUILD/ironic-24.1.4.dev12/ironic/api/controllers/root.py\\\", line 43, in index\\n    return root()\\n\\n  File \\\"<string>\\\", line 3, in root\\n\\n  File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1092, in __call__\\n    return self._mock_call(*args, **kwargs)\\n\\n  File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1096, in _mock_call\\n    return self._execute_mock_call(*args, **kwargs)\\n\\n  File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1151, in _execute_mock_call\\n    raise effect\\n\\nException: Error message without traceback \\n but \\n multiline\\n\"}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.057086s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.058014s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.021792s] ... ok
{1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.027436s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.048928s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl [0.058724s] ... ok
{1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.026330s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_empty_response [0.019060s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.057963s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline [0.041799s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.062446s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.046181s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline_no_file [0.041782s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_518_shard_patch_set_node_shard_disallowed [0.301467s] ... 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-5a41e84b-4acd-473b-b053-c93972db2c7f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.062049s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_nomatch_line [0.037537s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.080283s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_one_line [0.039591s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.062468s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_519_parent_node_patch_by_admin [0.090109s] ... 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-37580725-84ee-4db2-a373-2f059d55b213
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.051487s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.050179s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.055704s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.041736s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.042281s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_520_parent_node_patch_by_member [0.089258s] ... 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-07f03b3c-a504-4828-936b-0310d7e84785
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.055504s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.029600s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.043252s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.035700s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.025749s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.048539s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_521_parent_node_patch_by_reader [0.085012s] ... 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-5769e50c-ddc0-4b36-ba77-f7b819c7b3b6
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr [0.081383s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.035629s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.046054s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component [0.053622s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_522_parent_node_patch_by_manager [0.080255s] ... 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-7a24a69b-4d6f-45a0-8e75-29f44cec146b
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.043094s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.053947s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.038241s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.024610s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.051080s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_523_parent_node_patch_by_cannot_see_node [0.098338s] ... 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-aed5462a-830a-416e-a674-5ef6beee6b99
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unable to apply the requested parent_node. Requested value was invalid.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.034599s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.043982s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.043879s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.054823s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_524_parent_node_children_can_get_list_of_children [0.093555s] ... 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-547142e7-eb72-4b2b-8764-bee82497b441
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"children": ["3c3b8adb-edd7-3ed0-8e82-aab714d8411a"], "links": {"href": "http://localhost/v1/nodes?parent_node=1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "children"}}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.040484s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode [0.039240s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.038212s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_lessee_cannot_get_a_nodes_children [0.083831s] ... 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-c6302a59-ece4-42cb-ae5a-7bb838e751f8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.059963s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.053983s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.041446s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.029891s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.053586s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.022432s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.021834s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.052946s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.025306s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.478658s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_526_owner_reader_can_get_firmware_components [0.174040s] ... 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-c2bfe8a1-c153-44ec-a5e5-00001dcb5ce5
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"firmware": []}
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.024972s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.047631s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.042394s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.027259s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.020494s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.038453s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.028797s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.036805s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.029145s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.047518s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.029236s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.045008s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_527_lessee_reader_can_get_firmware_components [0.142313s] ... 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-45e51b83-d939-49e6-b549-7d83af5f7c8f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"firmware": []}
{1} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.019622s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.053794s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.037702s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.018576s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.022718s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.047007s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.022412s] ... ok
{1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_capture_region [0.048394s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.046602s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.035896s] ... ok
{1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_get_inspector [0.036177s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_528_third_party_admin_cannot_get_firmware_components [0.116087s] ... 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-c9e46bec-5cfd-44b8-901f-6b43c3a98afe
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.044191s] ... ok
{1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_file_like [0.046856s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.053623s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.046072s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_529_service_can_get_firmware_components_owner_project [0.085750s] ... 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-74785b39-ade5-4eaa-ae51-1c3c1a2a439f
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"firmware": []}
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.054749s] ... ok
{1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_file_like_eats_error [0.065635s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.057564s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.033563s] ... ok
{1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_iter_like [0.050766s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.026944s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.056374s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_service_cannot_get_firmware_components [0.110371s] ... 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-e6cc67fa-e4bb-480c-9a9c-27c2fc9834b4
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_iter_like_eats_error [0.057213s] ... ok
{3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.030344s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.064074s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.056651s] ... ok
{3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.036851s] ... 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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.027979s] ... ok
{1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.050213s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.051735s] ... ok
{3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info [0.040668s] ... ok
{1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [0.042324s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.058502s] ... ok
{3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.029546s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update [0.046003s] ... ok
{1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [0.044983s] ... ok
{0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.031675s] ... ok
{3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.038325s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.027990s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.053875s] ... ok
{1} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [0.045835s] ... ok
{3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.035271s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.020731s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.017269s] ... ok
{3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.032533s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c8d33a85-46f6-46a3-b26d-e0d368d44331
X-Openstack-Ironic-Api-Maximum-Version: 1.90
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": []}
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.038821s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.020602s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.054450s] ... ok
{3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.025388s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 401 Unauthorized
Content-Type: application/json
Www-Authenticate: Basic realm="Baremetal API"
{"error":{"message":"Authorization required","code":401}}
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.020242s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed [0.038871s] ... ok
{3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.034098s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6720a3ba-58dd-42a2-980e-5a7335bf8ed8
X-Openstack-Ironic-Api-Maximum-Version: 1.90
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.90"}}
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.029039s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.052130s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound [0.045895s] ... ok
{3} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.035238s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.041687s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.051606s] ... ok
{3} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.030938s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.041976s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled [0.037111s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.054480s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.035240s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.053071s] ... ok
{3} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.051255s] ... ok
{0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.029602s] ... ok
{3} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.029491s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.040661s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode [0.054681s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.050041s] ... 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.
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.024139s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    foo() migrated 15 of 15 objects.
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail [0.064649s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.026575s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 15 of 15 objects.
func2() migrated 20 of 20 objects.
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.038456s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
func2() migrated 0 of 0 objects.
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.072442s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.027506s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 15 objects.
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.025256s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.061811s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.024751s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    Error while running foo: bar.
{0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.236335s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.025549s] ... ok
{0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.019099s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.062860s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.035620s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
func1() migrated 0 of 0 objects.
func2() migrated 0 of 0 objects.
{0} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.025745s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.027044s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{0} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.029248s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.024746s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{0} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.022146s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.065795s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.022011s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
{0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.018627s] ... ok
{0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.017016s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.020186s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Malformed option m1key1=value1
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.021731s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Malformed option m1.key1value1
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.064702s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.020989s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    "max-count" must be a positive value.
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.031940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Data migrations have not completed. Please re-run.
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.053603s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.023288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.122381s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.022438s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.022196s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.022042s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.094536s] ... ok
{3} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.021366s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    This is bad
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.077197s] ... ok
{3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema [0.024996s] ... ok
{3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args [0.021065s] ... ok
{3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs [0.025387s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.071042s] ... ok
{3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed [0.025052s] ... ok
{3} ironic.tests.unit.common.test_args.ValidateTypesTest.test_types [0.018067s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.052435s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum [0.025911s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_file_not_found [0.024615s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_hashlib_not_supports_algo [0.018329s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.067596s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mismatch [0.020387s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case [0.019018s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case_delimited [0.017659s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.261372s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.054790s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_md5 [0.022561s] ... ok
{3} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client [0.022904s] ... ok
{3} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_service_token [0.021683s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.080085s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.069591s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.027667s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.021144s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.027944s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.023309s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.071721s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.032598s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.072306s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.024495s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.023998s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.069846s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [1.042811s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.023831s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.053413s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.032338s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.054854s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.044911s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.027516s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.074115s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.022323s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.071904s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.060916s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.045737s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.036859s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.066239s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.040684s] ... ok
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.074424s] ... ok
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.034367s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.069033s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.060258s] ... ok
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.039198s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.048483s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.058207s] ... ok
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.035145s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.050903s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.057647s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.051446s] ... ok
{0} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.053153s] ... ok
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.109772s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.022198s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.063494s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.034186s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.405811s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.029221s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.037352s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.051536s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.022197s] ... ok
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.098922s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.019666s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.040281s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.056917s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.031608s] ... ok
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.077017s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.020029s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.018593s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length [0.054108s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.021128s] ... ok
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.064366s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.019690s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.051979s] ... ok
{3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.031418s] ... ok
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.048643s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.172545s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean [0.047263s] ... ok
{3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.030174s] ... ok
{3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.022367s] ... ok
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_copy [0.068969s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.057011s] ... ok
{3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.030899s] ... ok
{3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.038541s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.052341s] ... ok
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.061335s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.028571s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.154348s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.022812s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.050670s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.029788s] ... ok
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.063156s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.022865s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.057365s] ... ok
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.049490s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.031199s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.022839s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy [0.053849s] ... ok
{1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.055653s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false [0.050731s] ... ok
{1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.040904s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.056746s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.039544s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.205269s] ... ok
{1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.043719s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.040033s] ... ok
{1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_symlink [0.023194s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.051036s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.040347s] ... ok
{1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.029963s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.046778s] ... ok
{1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.032490s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.050436s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.037888s] ... ok
{1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.028348s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.129713s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.043616s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.032577s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.037442s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.017695s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.015722s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.030261s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.051384s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.022743s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_handles_exceptions [0.036494s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.021536s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.044099s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.119780s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.020695s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success [0.042808s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.022213s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.046903s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success_verify_false [0.037247s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.027952s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.028657s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.053596s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.054966s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.023126s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files [0.019677s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.046557s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.037176s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.020912s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.017334s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled [0.043245s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.022893s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [0.055718s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.028129s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.023157s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.018235s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.024959s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.022580s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.066136s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.027219s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.018384s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.017510s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.024615s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.049690s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.024674s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.023831s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.017694s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.020026s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.038296s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.361328s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.017088s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_tlv_value_hex_format [0.059687s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.017888s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.042661s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.032392s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.055099s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.028004s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.024199s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.044778s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [0.055754s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.021045s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.017920s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.144219s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.054703s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.019963s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_id_subtype_mac [0.052348s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.020299s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.043331s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.018566s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.020533s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.026744s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_local_link_connection_already_exists [0.060875s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.017415s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.016573s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.016360s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_valid_data [0.047431s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.016998s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.160091s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.016938s] ... ok
{3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.016441s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.070179s] ... ok
{3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.026622s] ... ok
{3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.016851s] ... ok
{3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.038018s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_duplicates [0.060788s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.123358s] ... ok
{3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.017648s] ... ok
{3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.044266s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_ok [0.070885s] ... ok
{3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.059355s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_unversion_url [0.080450s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.144465s] ... ok
{3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.039464s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.025869s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.394170s] ... ok
{3} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.049581s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.041431s] ... ok
{3} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.048189s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.090876s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.021370s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.055723s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.019454s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.139578s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.022600s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [0.052359s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.034269s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.025979s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.052906s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.020718s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.019758s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.129029s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.036041s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.020297s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.018252s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.046498s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.018703s] ... ok
{0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.052390s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.020776s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.040752s] ... ok
{0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.041407s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.046258s] ... ok
{0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.033849s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.044838s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.029083s] ... ok
{0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.040444s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.043099s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.030923s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.019176s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.023316s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.057698s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.019505s] ... ok
{3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.020129s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.045963s] ... ok
{3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.021867s] ... ok
{1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.109654s] ... ok
{3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.017437s] ... ok
{3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.036618s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.061277s] ... ok
{3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.041288s] ... ok
{3} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.077567s] ... ok
{1} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.173472s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.114848s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client [0.680288s] ... ok
{1} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.073828s] ... ok
{3} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.091379s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.027096s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.019551s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.019290s] ... ok
{1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.092842s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.153034s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.019506s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.019426s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_and_fails [0.025652s] ... ok
{1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.099963s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.118051s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.042296s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.042460s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.042583s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.126291s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.042729s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_connection_problem [0.400342s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.245595s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.048866s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.026253s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.022881s] ... ok
{1} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.046195s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.023910s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions [0.019967s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.035555s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.018073s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.023772s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.184084s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.019694s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.043891s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.025507s] ... ok
{3} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.029335s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.017853s] ... ok
{3} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.020565s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.019358s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.016297s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.016316s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.119654s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.016211s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.015359s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.018442s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.016975s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.018629s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.017880s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.017984s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.119628s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.018489s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.018538s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_standalone [0.404069s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.020900s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_error [0.028812s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.019651s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.024715s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient [0.018574s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.107872s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.024816s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.024927s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.018254s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.017750s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.018506s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.024071s] ... ok
{1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.023129s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.394200s] ... ok
{1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.042629s] ... ok
{1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.029566s] ... ok
{1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.033575s] ... ok
{1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.037490s] ... ok
{1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.030737s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.296746s] ... ok
{1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.037157s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.023162s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.345573s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.021943s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.021714s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.021004s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.021389s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.078492s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.021916s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.021939s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.154180s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [0.358841s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.022082s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.021480s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.021648s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.120188s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.021388s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.022145s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.101455s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.044492s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.021616s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.022793s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.021813s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.055312s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.068564s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.021639s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.022472s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.058222s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.031268s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.028090s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.023716s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.071303s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.037014s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue [0.077671s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [0.044378s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.041798s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.086342s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.046613s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.333029s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.081517s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.045059s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.041346s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.043013s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.093345s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [0.601419s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.043469s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.066997s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort [0.095115s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.043343s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.024476s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.023281s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.086445s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.037009s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token [0.123426s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.041480s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.082179s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.061855s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.080914s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token_older_version [0.108739s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.039136s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_object_fails [0.353510s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.064715s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.093908s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.090582s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call [0.063846s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.071258s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.046380s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.083759s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.044168s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_tls_required [0.196706s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.074821s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.062056s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.036924s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.052286s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_token [0.105420s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.044327s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.058028s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data [0.437887s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_verify_ca [0.132650s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.079305s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.111068s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_version [0.175260s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.369835s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.092831s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.126567s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.109632s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.153543s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_required_agent_token [0.095135s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.095793s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_agent_version_anaconda [0.087623s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.091284s] ... ok
{0} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_version [0.095901s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.256083s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.083540s] ... ok
{0} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state [0.043658s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [0.700324s] ... ok
{0} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators [0.034314s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.089308s] ... ok
{0} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state [0.046529s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.113600s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.026046s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.024157s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.027314s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.029820s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.146636s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.027081s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.024011s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.023550s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.037312s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.141735s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [0.348323s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.397797s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.229059s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.107278s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.383418s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.060858s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.077572s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.319140s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.084315s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management [0.058673s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.078367s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [0.651990s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.065682s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.267477s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_without_jsonrpc_port_pined_version [0.353352s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled [0.100724s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.074577s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.088554s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_one_worker [0.068543s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.214291s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.081786s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.046546s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.072676s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [0.375582s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.118681s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.138088s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.268091s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.104704s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.122887s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__sensors_conductor [0.066582s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.073078s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.094088s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.092199s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.108677s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.122457s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.032894s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.448122s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.054449s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.102792s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.047202s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.035153s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_success [0.049047s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.078442s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.086138s] ... ok
{0} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.070498s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.120138s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.042041s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.057991s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.064589s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.051357s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.030793s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.042723s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.058708s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.200076s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.068124s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.050667s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.044011s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.107019s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target [0.053665s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.047019s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.110571s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.073578s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.279663s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.046805s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.080529s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.050145s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.040124s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.027841s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.059216s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.097004s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.041400s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.035152s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.041031s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_ok [0.052778s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.034042s] ... ok
{3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [0.885065s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.050617s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_with_discovery [0.053917s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.043410s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.063641s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.036097s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.091856s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.035673s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_wrong_state [0.095009s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.053387s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.038110s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.079755s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.046230s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.076454s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.083386s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.055508s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [0.054371s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.057568s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif [0.069611s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.047295s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [0.048423s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present [0.052728s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.082674s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [0.050411s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.073307s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.112205s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.056299s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.065722s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.058145s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked [0.037102s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.131184s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session [0.067763s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.060015s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.056392s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.266242s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.060972s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.084011s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [0.058237s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.046725s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.049613s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.062555s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.073836s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.062694s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.114437s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.058710s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.044354s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.047166s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.061203s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.064647s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.097628s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.100538s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.052022s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.051222s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.049508s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.075048s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.065173s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.069806s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.106876s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.051959s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.083336s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.049025s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.091168s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.068982s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.126418s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.167341s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.049125s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.083780s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_state_set_by_driver [0.162910s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.147657s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.121178s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.092180s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.106147s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.131745s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service [0.094940s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.325044s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.079887s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.059524s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.174287s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.066324s] ... ok
{0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.088598s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.041716s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.018883s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.122633s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.084618s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.026358s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.024990s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.031777s] ... ok
{2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.063869s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_early [0.094905s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.036082s] ... ok
{2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.052734s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service_maintenance [0.344487s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.030786s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.025753s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.041583s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.055350s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.045920s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_with_step [0.107994s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.046996s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.035316s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.047854s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.057948s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 [0.055880s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.049226s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean [0.049964s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.064151s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.038592s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy [0.053507s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.028811s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.062742s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.028828s] ... ok
{0} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.219372s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.069491s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.052309s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.029277s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.032201s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.063253s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.028009s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.031629s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.104550s] ... ok
{0} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.128442s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.054461s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.029961s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.029060s] ... ok
{3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.056022s] ... ok
{0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.070414s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.029563s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration [0.093923s] ... ok
{3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.032916s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.026881s] ... ok
{0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.044253s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.026415s] ... ok
{3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [0.051529s] ... ok
{0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.043832s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.078876s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.033647s] ... ok
{3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.044526s] ... ok
{0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing [0.048054s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.038417s] ... ok
{3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.044350s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps [0.050009s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.107046s] ... ok
{3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.043729s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.039828s] ... ok
{3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.049206s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.123872s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps [0.041780s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.086298s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps [0.052566s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.083423s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.041706s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.074489s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.111971s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.070236s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.094573s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.047072s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.129585s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task [0.112754s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.088337s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.090783s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.104406s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.080868s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.090817s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.044573s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked [0.119191s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps [0.041235s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.049639s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.124006s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.341746s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.047914s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.136410s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.041799s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.098281s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps [0.060320s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.039567s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.074797s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps [0.043401s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.094319s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing [0.038138s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps [0.038707s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.060191s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.093423s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.042455s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps [0.046203s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.104376s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.103614s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.042529s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.049992s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.064615s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.402689s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.113366s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.041114s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.044854s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.098023s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.095526s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.036483s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.093153s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.058228s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.062412s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.118590s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.111881s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.049221s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.051569s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.056863s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.106062s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.075163s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.051830s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.103303s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.076866s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.031727s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.226169s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.158199s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.028337s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.097068s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.037703s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.034826s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.059526s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.110145s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.033726s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.057832s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_polling_if_not_set [0.042133s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.201219s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.033733s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.049933s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.107479s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.038275s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.053742s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.045545s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.043063s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.020003s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.094338s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.037910s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.020135s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.040973s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.029466s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.200690s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.031948s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.051833s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.024414s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.023384s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.126971s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.044853s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.023595s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing [0.044503s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.060090s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.201614s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.117554s] ... ok
{0} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing [0.060405s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.046819s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.030714s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.025875s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.022913s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.085371s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.272673s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.037435s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.185502s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [0.058657s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.037521s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.032512s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.071753s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.020986s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.107905s] ... ok
{1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.123766s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.026801s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.020467s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.064047s] ... ok
{3} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node [0.037427s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.021246s] ... ok
{3} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.027834s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.031890s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.029780s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.060032s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.021486s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_on [0.108381s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.020026s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.034120s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.019968s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.019062s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.058717s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.022554s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.034183s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_reboot [0.121660s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.038390s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.048388s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.019870s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.120337s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.020512s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.061930s] ... ok
{1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.359100s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.049466s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.049878s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.038725s] ... ok
{1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.081080s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.046487s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.020440s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.133214s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.020879s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.039501s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.019910s] ... ok
{1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.063496s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.022611s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.023520s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.056964s] ... ok
{1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.057162s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.036448s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.116405s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.023266s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.050315s] ... ok
{1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.051655s] ... ok
{0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token [0.021632s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.046170s] ... ok
{0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.034096s] ... ok
{0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.041465s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.058333s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.132001s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.108586s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps [0.051259s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.062872s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip [0.058986s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.105943s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.110190s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.082757s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.049745s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.023705s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.040124s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.021153s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.101141s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail [0.029740s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.026778s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.071383s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.137200s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.023546s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.021705s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.048546s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.104402s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.022945s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.022121s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception [0.043918s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.022532s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.020519s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.050933s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.020855s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.100675s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.161672s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.024295s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.041318s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.027385s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.039811s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.062492s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.127855s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.090143s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop [0.063239s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.030729s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.220318s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.029808s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.119543s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.051227s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.180685s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.060696s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.053476s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_clear [0.047704s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.072259s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.044297s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_replace_with_empty [0.047251s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.059116s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.024228s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.224728s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.024701s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.050618s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.021987s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.024455s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.021590s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.024033s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.347676s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.021863s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.023633s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.029497s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.025795s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.026962s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.019044s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.161854s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.018628s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.018509s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.023698s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.023924s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.046842s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.141131s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.059329s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.257227s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.026108s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.035934s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.363416s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.083652s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.024947s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.023211s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.028380s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.088838s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.036543s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.132529s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.038698s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.024124s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.080923s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.066318s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.063610s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [0.392710s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.135634s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.034231s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.033587s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.069689s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.035751s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.084109s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.032719s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.036352s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.023880s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.050977s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.028574s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.087872s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.033592s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.062284s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.208335s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.036747s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.029287s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.096539s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.078996s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.033999s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.041597s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.032521s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.025344s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.051056s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.115352s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.033410s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.032725s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.224281s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.052284s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.034602s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.099803s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.052734s] ... ok
{0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.030050s] ... ok
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate [0.030125s] ... ok
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate_some [0.050371s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.110538s] ... ok
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_all [0.041465s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.185936s] ... ok
{1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_http [0.046970s] ... ok
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.055038s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.031601s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.106921s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.032593s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.023432s] ... ok
{1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_local [0.131192s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.024591s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.300328s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.031818s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.110426s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.028302s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.060488s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.033679s] ... ok
{1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media [0.122848s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.033046s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.067722s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.115269s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.046821s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.057886s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.035103s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.043155s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.033664s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.035872s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.056994s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.027303s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.031457s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.035055s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.050956s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.063495s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.054803s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.047708s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.046635s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.068406s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.081050s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.047958s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.080273s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.067252s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.050110s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_get_node_with_token [0.045601s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.051521s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.063659s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.063663s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.065021s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.059985s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.074410s] ... ok
{1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.552138s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.056570s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.036146s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.048836s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.026171s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_locked [0.084896s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.026194s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.055754s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.020681s] ... ok
{1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_prepare [0.115800s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.025641s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_set [0.077938s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.070216s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.034148s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.026567s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.039844s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.095026s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.023298s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.078352s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.023791s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.042258s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.048088s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.033191s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.048361s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.073466s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit [0.035916s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run [0.025003s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.065101s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.051740s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.039088s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.073801s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.079957s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.070508s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.132573s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.138012s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.082473s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off [0.156872s] ... ok
{0} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.164743s] ... ok
{3} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.144929s] ... ok
{0} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.047695s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.181669s] ... ok
{0} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.070530s] ... ok
{3} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.132570s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.096206s] ... ok
{3} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.075096s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.204640s] ... ok
{3} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.089254s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.130397s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.057070s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on [0.133214s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.069244s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.057121s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.049622s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.093313s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.125178s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.057283s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.057978s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.038423s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.192255s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.166417s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.071062s] ... ok
{3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.050114s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.120182s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.042250s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.123420s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.198666s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.053190s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.041407s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.044591s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.048741s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.169615s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.046419s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.054051s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.108506s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.063207s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.045640s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.106220s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.049770s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.045251s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.126166s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.051365s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.054652s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.620703s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.050610s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.133973s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.057912s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.096670s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.044330s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.102549s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.036159s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple [2.067647s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.065668s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.092629s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop [0.089890s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.161181s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.156435s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.082180s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.146127s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.078915s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.124367s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.113912s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.070354s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.123641s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.124924s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.110374s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.085634s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.080368s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.135557s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.177536s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.089457s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.194528s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.137372s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.080655s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.126104s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.085394s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.138277s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.220340s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.101095s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.174340s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.145198s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.107876s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.106680s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.099206s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.230123s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.287975s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.123296s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.186835s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.099808s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.087053s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.328280s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.201610s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.122187s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.116293s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.253180s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.120030s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.297792s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.118154s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.226246s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.125049s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.293327s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.104078s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.201726s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.096009s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.101821s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.178067s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.322840s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.220264s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [0.320898s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.170985s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_reserved_options [0.175161s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs [0.286637s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.134924s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.791997s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.039510s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.054321s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.145372s] ... ok
{2} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.057788s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail [0.270552s] ... ok
{2} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.038443s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test__get_service_steps [0.119237s] ... ok
{2} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.076601s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.108951s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test_set_node_service_steps [0.140335s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.043214s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor [0.090645s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.052303s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean [0.355216s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.064736s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac [0.136935s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.062357s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.122666s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector [0.186292s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy [0.259195s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.114241s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid [0.145532s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.090854s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [3.526256s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.123126s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.082076s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean [0.285564s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.094400s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.183179s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.100375s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy [0.231035s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.089916s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.061383s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.193369s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.495977s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.085314s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.154876s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.071277s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_with_errors_job [0.312609s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.086407s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.222672s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.188789s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job [0.220078s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.145837s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.161453s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.037628s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.065948s] ... ok
{2} ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces [0.174301s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.137677s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface [0.069618s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.102511s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.070232s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean [0.259453s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.067582s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.088595s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.180109s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy [0.113565s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.118447s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.138689s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.186196s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.132543s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.130921s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.058117s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean [0.281433s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.047622s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.092977s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.153783s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set [0.081838s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.088673s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy [0.192096s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.157516s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.101501s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update [0.091064s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset [0.220123s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.101857s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.085632s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac [0.113572s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.093691s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.127313s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman [0.115412s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.078874s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac [0.072784s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.122369s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac_wsman [0.073168s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.105356s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes [0.057414s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.147374s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.421051s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.097949s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.079879s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.108247s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method [0.164587s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.078262s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.107561s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.111952s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.236570s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.140194s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers [0.153491s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.148787s] ... ok
{2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.150170s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [0.122918s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.129615s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.114244s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create [0.160533s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry [0.155484s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.092661s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.515224s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info [0.082608s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.099701s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.099849s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme [0.096300s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.155972s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.107621s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.106255s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.293465s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address [0.108841s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.174498s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.150853s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.121003s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.125808s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.103756s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.137767s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.075532s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.107573s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.187865s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info [0.096656s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.147325s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca [0.068423s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found [0.133903s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.120346s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath [0.079887s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.125523s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.122428s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.122448s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.096004s] ... ok
{0} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary [0.059812s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.090321s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.184176s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.095310s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.137905s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.087505s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.103669s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.141685s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.122205s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.183001s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.153336s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.107657s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.154991s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.117397s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.028469s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.041669s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.210475s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.082873s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.049924s] ... ok
{3} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.048866s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.119858s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.109308s] ... ok
{3} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.091193s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.964975s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.082239s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.135704s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.051918s] ... ok
{3} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.127249s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.109497s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.099792s] ... ok
{3} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.083368s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.086117s] ... ok
{3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template [0.053469s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.110239s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.115257s] ... ok
{3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.090196s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.089459s] ... ok
{3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.050927s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none [0.096949s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.102609s] ... ok
{3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing [0.073481s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.029019s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.096848s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.035310s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.090620s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.068932s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.112881s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.104038s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.107238s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.073865s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.072980s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.098768s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.757455s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty [0.090094s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.094441s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.048322s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.065388s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.043043s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated [0.085269s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change [0.080766s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.147798s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.154154s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.310870s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.144485s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.115934s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.074123s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive [0.066735s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.082967s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.102453s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.090308s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.098607s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.089469s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.195306s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden [0.086547s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.104846s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.151398s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.232444s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields [0.114855s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.086985s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.123342s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.187160s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.099600s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.128424s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing [0.983266s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.113356s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.231411s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.112669s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new [0.124466s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.100773s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.077344s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.054623s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.104612s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.099340s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.227442s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.103422s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.117840s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.105428s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.180291s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.137580s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.290786s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.124371s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.086976s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.103580s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.221209s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.113287s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.226594s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.110264s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.158998s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.120872s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.190154s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.265351s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.125081s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.129926s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.129510s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.141417s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.234440s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.282855s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.073410s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.117399s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.077666s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.108299s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.192580s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.066204s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.056536s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.262262s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.102612s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.134764s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.351611s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.281468s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.180870s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.051198s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.052753s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.060812s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.345260s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.307277s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.067507s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.059113s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.044816s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.029373s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.039247s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.201541s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.068409s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.039146s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.073755s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.236583s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.428662s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.093255s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [1.196392s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.071993s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.039358s] ... ok
{2} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.024192s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.178976s] ... ok
{2} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.036605s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.027647s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_already [0.274405s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.280552s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.078995s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.059212s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.044615s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.044466s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.040630s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.080769s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token [0.165850s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.050891s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.025091s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.040344s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.252107s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.031697s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.028702s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.150740s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.049341s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.198277s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.047741s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.117110s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.056766s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.265739s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.163879s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.049370s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.130992s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.202107s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.059263s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.279641s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.068082s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.049370s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.142716s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.087588s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.055528s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.162501s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.034891s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.088697s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.333966s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.042985s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.164713s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.041826s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.312618s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.282867s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.206821s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.185833s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.611051s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.066651s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.242320s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.263858s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.061685s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.053073s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.055132s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.142093s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.222618s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.080388s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.064684s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.178411s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.061845s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.164613s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.101686s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default [0.139793s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.090281s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.104623s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.219170s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.081321s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.102218s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.093076s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.171393s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.081811s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.101752s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.116006s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.147331s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.054601s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.193083s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.075760s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.180455s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.146732s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.087234s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.085994s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.050077s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.067351s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ServiceUtilsTestCase.test_wipe_service_internal_info [0.156667s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.074743s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.083931s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.081276s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.078531s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.040250s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.105525s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.093530s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.052484s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.051993s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.105392s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.100492s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.078310s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.072862s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.065247s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.101596s] ... ok
{3} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect
{3} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.148583s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.136404s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.820902s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.111107s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.107168s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.100347s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.087401s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.069886s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.138796s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.115619s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.071831s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.103864s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.071800s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.068135s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.138629s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.045043s] ... ok
{1} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.072028s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.093376s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.375440s] ... ok
{1} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.070242s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.054601s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_ilo6_redirect [0.080950s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.066194s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.041404s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.120423s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.213151s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.061130s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.063312s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.059773s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.038909s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.065822s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.075783s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.091553s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.113356s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.034984s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.022497s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.101188s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.085866s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.093722s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.072857s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.072699s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.033962s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.124933s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.055988s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.043286s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.046648s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.081507s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.064368s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.038100s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.050686s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.098970s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.029072s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.071723s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.044477s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.027628s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.069367s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.066754s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.384111s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.123575s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.040420s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.041442s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.077928s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.054084s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.087136s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.066367s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.076337s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.030446s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.096531s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.028602s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.033771s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.037782s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.049184s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.042993s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.041054s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.109751s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.043693s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.093022s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.039028s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.095862s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_offline [0.032173s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.067174s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.195389s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.049001s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.048474s] ... ok
{3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.043899s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.059192s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.039740s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.030794s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.217628s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.070718s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.045093s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.038383s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.078906s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.032770s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.051571s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.073606s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.457482s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count [0.119482s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.046094s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.134574s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.066516s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.079229s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.037030s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.050839s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.038306s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.047146s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.062906s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.070026s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.058511s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.135540s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.096594s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.618955s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.063225s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.115898s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_twice [0.131329s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.553478s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.124496s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.074705s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.683304s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.083337s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.121273s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.142169s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.106720s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.064668s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.114168s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.057331s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.089320s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.079602s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.072560s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.087964s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.136422s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.073467s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.083000s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.088185s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.103657s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.072144s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.066599s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.103356s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.091566s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.103980s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.069520s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.095464s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspecting [0.081105s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.060405s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.082506s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.075421s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.078642s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.074815s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.081939s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.128278s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.076634s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.060231s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.120058s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.026247s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.040848s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.112194s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.084537s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.071218s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.032897s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.152157s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.046862s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.072831s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.042559s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.066244s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.087043s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.042195s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.032132s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.059751s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.090908s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.089230s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.062392s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.082098s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.049123s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.028651s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.052211s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.028312s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.049122s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.037001s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.040882s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.031017s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.067126s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries [1.121291s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.080510s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.062536s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.066703s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner [0.069336s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match [0.065222s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.083701s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match [0.536448s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.087536s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries_without_log_mock [1.074154s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.133504s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.134433s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.109471s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.117336s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.097780s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.205231s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner [0.127409s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.069235s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.056260s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.136169s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.054254s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.109791s] ... ok
{1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.071315s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.065369s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.120063s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.090402s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.040690s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.058442s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.061524s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.037378s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.086491s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.035238s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.066480s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.054037s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.069724s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.061303s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.057137s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.084431s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.039125s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.073134s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.107281s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.106370s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.112923s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.098066s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.079621s] ... ok
{1} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.061652s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.143405s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.145256s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.093186s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.086669s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.123458s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk [0.048417s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy [0.062082s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.104565s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent [0.055136s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.084927s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor [0.071039s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.065919s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.047523s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.050966s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.044671s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.065468s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.036558s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.112293s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.050913s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.089331s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.058570s] ... ok
{3} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.078352s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.099865s] ... ok
{3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.052599s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom [0.063995s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios [0.048708s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi [0.036649s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe [0.029198s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device [0.039325s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent [0.028551s] ... ok
{3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.209655s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list [0.050458s] ... ok
{3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.053600s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device [0.029083s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode [0.045456s] ... ok
{3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.075174s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail [0.051007s] ... ok
{3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.059725s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list [0.033082s] ... ok
{3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.047089s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode [0.052623s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.081730s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.100615s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.102793s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.106689s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.135424s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable [0.597731s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.113578s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent [0.072488s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting [0.052978s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.122407s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device [0.031866s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change [0.070562s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.109810s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device [0.030906s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable [0.036458s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode [0.045226s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled [0.038305s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.143608s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail [0.027996s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step [0.041000s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step [0.056760s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.159322s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step [0.044111s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step [0.074405s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state [0.047356s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.152323s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail [0.041141s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties [0.059025s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.132505s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_fail [0.064338s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_power_change_success [0.060606s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.154991s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.155187s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.053629s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.113758s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.110781s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.076021s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.084215s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.064488s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.051013s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.059166s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.061002s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.083524s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_different_inventory_time [0.078650s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_success [1.087385s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time [0.073292s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time_timeout [0.081450s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.139297s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs [0.667002s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors [0.146514s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off [1.056072s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on [0.085212s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_failed [0.201331s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_still_running [0.051290s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status [0.054173s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout [0.149438s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs [0.041540s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_driver [0.062931s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_commit_fail [0.058125s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state [0.200857s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_set_fail [0.137644s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail [0.129997s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_clean [0.249768s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout [0.266430s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 [0.073633s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_deploy [0.177532s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 [0.078239s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 [0.076536s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_fail [0.142564s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level [0.083868s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all [0.068856s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only [0.071620s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop [0.246271s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only [0.061214s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.118577s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration [0.103108s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_clean [0.202258s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps [0.108769s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete [0.064213s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_commit_fail [0.136954s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level [0.077354s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb [0.048426s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_less_than_actual_size [0.058299s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_deploy [0.164643s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_more_than_actual_size [0.056220s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb [0.035200s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_foreign_drives [0.096859s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail [0.216101s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_no_foreign_drives [0.120213s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties [0.144253s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration [0.075488s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate [0.166248s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client [0.076181s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing [0.303675s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info [0.075361s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port [0.063722s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.156719s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved [0.154377s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol [0.095372s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space [0.100984s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host [0.117428s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled [0.081281s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password [0.089234s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path [0.056754s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean [0.162363s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port [0.070436s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol [0.043528s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username [0.081990s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy [0.141641s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change [0.072790s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure [0.112614s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks [0.115408s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure [0.090387s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode [0.131066s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size [0.159739s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode [0.114210s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks [0.134149s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list [0.108624s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks [0.140387s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk [0.095511s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties [0.097101s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware [0.206223s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail [0.105356s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu [0.120510s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers [0.612490s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu [0.073181s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_gpu [0.060911s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks [0.131413s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_supported_gpu [0.078515s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk [0.081844s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 [0.153584s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports [0.062756s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job [0.092619s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail [0.065753s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level [0.218187s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs [0.070692s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail [0.043899s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_physical_disks [0.097014s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue [0.032097s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail [0.076195s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks [0.134639s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_without_drives_conversion [0.173894s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean [0.152700s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy [0.113434s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid [0.493730s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change [0.080189s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix [0.098517s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.127891s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_ehba_mode [0.077661s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid [0.098382s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks [0.082055s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_raid_mode [0.139900s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.170864s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail [0.102842s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers [0.113699s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks [0.210022s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.244381s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail [0.120173s] ... ok
{1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot [0.196647s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks [0.086453s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.198298s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail [0.064784s] ... ok
{1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail [0.106739s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.146564s] ... ok
{3} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed [0.142324s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.141884s] ... ok
{1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached [0.250212s] ... ok
{3} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_with_delete [0.205742s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.177608s] ... ok
{1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout [0.204800s] ... ok
{3} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_delete [0.168815s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.144508s] ... ok
{3} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_nonroot [0.160979s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.223169s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.129190s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.152419s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.144947s] ... ok
{3} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_root [0.201340s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.099596s] ... ok
{3} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_failed [0.180770s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.092907s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.251171s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.081008s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.091092s] ... ok
{3} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success [0.187249s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.071686s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.205063s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.075609s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.103522s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.236027s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.186351s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.106656s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.161267s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.129395s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.122717s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.269442s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.172230s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.191124s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.116402s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.105053s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.085792s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.311017s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.066889s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.086454s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.056271s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.136401s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.046196s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.071884s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.090132s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.049664s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.072763s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.063919s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.038629s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.141851s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_accelerators.AcceleratorsTestCase.test_accelerators [0.106861s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.080085s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_architecture.ArchitectureTestCase.test_architecture [0.104222s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_boot_mode.BootModeTestCase.test_boot_mode [0.097631s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.178377s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.100382s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.205326s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [1.042608s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.251103s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_physical_network.PhysicalNetworkTestCase.test_physical_network [0.167515s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.091421s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.197965s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.168636s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [0.179545s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.123089s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.252517s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.124704s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.225131s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.128446s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.254669s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.154017s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.084985s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.066131s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.070960s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.261887s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.127340s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.150240s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_serials [0.594932s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.142760s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.135809s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.055798s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.172813s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.075113s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_found [0.106497s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.072781s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.037473s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.194651s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_exception_ignored [0.033825s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.062444s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_check_inspecting [0.033869s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_finished [0.044912s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.132004s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.084941s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.095240s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.087324s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.148633s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspector [0.086030s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.077176s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.074341s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_boot_clean_up_failed [0.095466s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.101363s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.067657s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error [0.037711s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_dont_store_inventory [0.050856s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.096521s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.086803s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.099681s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.103217s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_managed [0.136092s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_managed_no_power_off [0.037799s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.055210s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.088931s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_network_clean_up_failed [0.056427s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.044251s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.108683s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.076041s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_managed [0.064696s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.059248s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.091321s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_managed_no_power_off [0.077074s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.050272s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_off [0.077642s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_managed_no_power_off_on_fast_track [0.046729s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.043157s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory [0.030389s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates [0.072373s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.068886s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_no_data_received [0.092828s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.079323s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.052529s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.080850s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_memory.MemoryTestCase.test_memory [0.097786s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_error [0.142260s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_added [0.125504s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track [0.087779s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.090331s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [0.378780s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.057884s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_all [0.169139s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_ok [0.083350s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.059215s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.082753s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.042742s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_present [0.113614s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_ok [0.042709s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.086899s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.044194s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.031357s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.070409s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.141933s] ... ok
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.081999s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.066011s] ... ok
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.039110s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.034814s] ... ok
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.040063s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.151450s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.044098s] ... ok
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.061265s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.050741s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.072454s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.038674s] ... ok
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.050347s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.059695s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_properties [0.035443s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.046446s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.024401s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.072433s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.067169s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.081443s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.152586s] ... ok
{0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.200553s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry [0.118499s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.197573s] ... ok
{0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.089803s] ... ok
{0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.052547s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.121135s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.130330s] ... ok
{0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.063969s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.079130s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase [0.074940s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.079565s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.090240s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.080142s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... SKIPPED: bug #2025424
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.078010s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.095640s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.079262s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.075518s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.328188s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.069819s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.088942s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.096548s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.069355s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.074441s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.066328s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.042120s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.053844s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.098590s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.114021s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.045298s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... SKIPPED: bug #2025424
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.047010s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.076289s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_null_strings [0.046147s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.136190s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_old_format [0.051074s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.087281s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.051933s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.074843s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.096641s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.065537s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.095070s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.042309s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.071059s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.062196s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.135595s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_all_match [0.079483s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.131960s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.143059s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.127675s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.046004s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_incorrect_hint [0.073316s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.106963s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_local_gb_without_spacing [0.080318s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.284382s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.032627s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.076083s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.050326s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [0.100562s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_no_hints [0.163378s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.124001s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.091811s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_one_matches [0.122008s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.082136s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_root_device_skip_list [0.074475s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.145605s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.079511s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_invalid [0.057964s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.079168s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_string [0.095890s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.117669s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.103716s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_zero_size [0.069197s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.043222s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.080356s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.042128s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.049800s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_no_pxe_fallback_to_all [0.028461s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.033557s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.076027s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.061154s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.065191s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.090233s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_cleanup_failed [0.146591s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.105179s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_success [0.082858s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.158717s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.192295s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.726334s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.047562s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.116543s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.078271s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.042792s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.073725s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.066049s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.198523s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.047090s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.088575s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.130484s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.091509s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.112561s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.070828s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.361885s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.083793s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.066867s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.037644s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.054563s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.036555s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.042261s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.051825s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.049185s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.107081s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.037471s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting [0.052441s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.087306s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.486000s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.034255s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.048536s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [0.030738s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.097351s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.078843s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.085440s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.036884s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.047588s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.050281s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.157072s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.105917s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.101305s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.129736s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.114099s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything [0.122348s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.043489s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.077201s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.067387s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.040190s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.112114s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.125131s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.044677s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.070160s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.057378s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.032157s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.033212s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.026531s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.072228s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.194959s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.046886s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.060983s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.036703s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.036957s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.095521s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.037632s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.135771s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.109868s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.086741s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.093312s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.041615s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.056630s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.052763s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.111323s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.036110s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.048488s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info [0.030145s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.063099s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.048140s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.048636s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.048012s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_invalid_json [0.035033s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.056892s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.052860s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_200 [0.024231s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.026857s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_500 [0.023378s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.025206s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.073096s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.041850s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.048299s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.024709s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.027971s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.022971s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.064081s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.025202s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.022123s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.031592s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.022147s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.026764s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.048888s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.062911s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_fail [0.074794s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.047391s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.043633s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_success [0.060842s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.030301s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.108135s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.056695s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.040109s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.033820s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.058233s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.043915s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.031592s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.032064s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.057235s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.032422s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.057245s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.065338s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.033852s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_match [0.034382s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.075303s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.022164s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.058091s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success [0.035457s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success_out_range [0.045962s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.121917s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.132245s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.055457s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning [0.166121s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.104254s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.026616s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.062909s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.053938s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.064122s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.059400s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.071179s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.059614s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.087075s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.409934s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.069430s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.082865s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.035780s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated [0.043918s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.082554s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.053055s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.183802s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.059737s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.036496s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.025372s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.032618s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.036958s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.051773s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.097400s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.049176s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.099012s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.142355s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.106561s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_default [0.189300s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.073696s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.148576s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_ipmi [0.092640s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.086185s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.101464s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.076012s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.044539s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track [0.116460s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance [0.062078s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.063499s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.133884s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_redfish [0.382621s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.114619s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.046361s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.102074s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.185483s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.112078s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_lenovo [0.077439s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.111564s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.141545s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.123420s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.127630s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.083184s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.045626s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.091132s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.150507s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state [0.050600s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.056452s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.083324s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_default [0.040488s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.042233s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.040088s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.074887s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_redfish [0.053556s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.081151s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.047075s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_ipmi [0.065669s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [0.065612s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_redfish [0.065730s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.054952s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.443430s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.072256s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.062148s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.052569s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.036438s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.076845s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.030342s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.074953s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.067460s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.097545s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.053349s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.109750s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.035886s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.103185s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.063056s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.175034s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.174238s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.087216s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.052744s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.161251s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.090409s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios [0.114209s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.543554s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.100520s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.198243s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.281908s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.046655s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.050212s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.105281s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.134834s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.091736s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.150542s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.132411s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.164874s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.118832s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.091284s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.053735s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.145259s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.155993s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.067876s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none [0.081776s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.057242s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.211477s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.170207s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.036441s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.051493s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.072909s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.046785s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.085558s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.102553s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.150752s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.293682s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.074054s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.101343s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_frequency [0.052323s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.143396s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.065506s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_instruction_set [0.071455s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.081377s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.054052s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.063495s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.182639s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.095993s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id [0.090131s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.043299s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.235013s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.350941s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local [0.082340s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.051298s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.064360s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.045349s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.168243s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance [0.079030s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.081212s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance [0.048696s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.073853s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage_and_storage [0.050662s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.093683s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.113468s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.051240s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.144457s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.084462s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.153608s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.135989s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.063941s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.078508s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.076236s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.110192s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.074754s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.072210s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.136133s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.244784s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.224212s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.139096s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac [0.202916s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.121778s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.074171s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.164166s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs [0.169994s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled [0.184101s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.144927s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.462608s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.103445s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.101706s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.139906s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.127715s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.133242s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.160323s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.820113s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.069890s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.067179s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.127711s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.107119s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.096920s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.104910s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [0.117622s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.082761s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.076534s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.105255s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.072011s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.069873s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.058502s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.107682s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.068500s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.157936s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.190568s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.233386s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.090121s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.155704s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.488029s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.087886s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.107184s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.416681s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.189000s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.400132s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.249260s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.181763s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.256337s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.186990s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.212473s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.174195s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.114097s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.323669s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.166550s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [1.010920s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.165158s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.395782s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.117054s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.132435s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.074042s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.076583s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.046866s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.053966s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.063111s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.060633s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.267921s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.078863s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.056309s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.043880s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.022830s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.022742s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.093816s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.047593s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.028630s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.196658s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.028684s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.111410s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.043235s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.029355s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.039884s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.104423s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.158956s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.051761s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.075208s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.093083s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.090659s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_attach_virtual_media [0.072205s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.062382s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.101542s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.095632s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.302313s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.052391s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.101700s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.056645s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.102948s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.072823s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor [0.086818s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.161194s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.062192s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.384372s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.046861s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.116635s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state [0.040977s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.057959s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.040177s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.079994s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.037184s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.189459s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.064573s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.047520s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.364833s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.065112s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.145900s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.037054s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.044126s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.131910s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.095388s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.063646s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.101900s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.160729s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.183570s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.099407s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.099177s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.197849s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.205499s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.103012s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.084239s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.125093s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.212614s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.077749s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.106554s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.088358s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.120376s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.071576s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.114085s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.149880s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.082424s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.054665s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.133179s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.272597s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.077176s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.104389s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.138459s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.078670s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.206956s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.082506s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.101306s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.066884s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.158119s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.062990s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.123127s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.099028s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.159521s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.109120s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.143810s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.069858s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.162746s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.081496s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.089449s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.066929s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.156425s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.150921s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.076887s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.064547s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [0.110488s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.068727s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network [0.064964s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.091149s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.146185s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.062169s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.206079s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.074240s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.099920s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.126892s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.111826s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data [0.081376s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.189490s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.047385s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.071306s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed [0.057028s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.086706s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.092821s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.528365s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.112200s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.105653s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.061637s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.136438s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.068711s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.119571s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.124800s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.131034s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.945281s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.104832s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.052769s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.061045s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.060381s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state [0.288751s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach [0.617709s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.071003s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.106090s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.149255s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.084490s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach [0.206943s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.170323s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.108739s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list [0.150008s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.108650s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network [0.096693s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.092029s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.051401s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.105076s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.103452s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network [0.106607s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.119716s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.191678s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.069702s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node [0.132968s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.067304s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.143382s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.175180s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.091771s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware [0.089836s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.083646s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data [0.068668s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.093921s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.131096s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.087514s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.043605s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.081236s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.137457s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage [0.156548s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.046978s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.064235s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.067946s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.171595s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.195158s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.051330s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.138293s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.134444s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.052614s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.142629s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.046006s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.131551s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.057363s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.075998s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.073000s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.134430s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.133150s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.229154s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.105528s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection [0.136817s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.127973s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.080781s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.058186s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc [0.074552s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.078489s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.085287s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.104498s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.073757s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.058141s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.049645s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.065039s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.044913s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.137833s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.174891s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.079196s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.105967s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.178103s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_whole_disk_image [0.118792s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.200423s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.092110s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_normal_boot [0.216446s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.123637s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.089431s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.093729s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot [0.209000s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.044367s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error [0.025699s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.027694s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.147935s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.140571s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.082137s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service [0.030460s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.084376s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error [0.042085s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.101374s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.043556s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.032668s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.046990s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.170419s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.151210s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.065959s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.080909s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.082759s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.170195s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.095356s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.137383s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.080269s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_no_debug [0.116745s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.043121s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.123785s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.036225s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_with_params [0.099119s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.067464s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.109596s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.081152s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.050837s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_correct_vendor [0.053581s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.087585s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_errors_with_lack_of_support [0.051851s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.169353s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_inspection [0.061412s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.067027s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.041461s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.083061s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.060029s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.169931s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_local [0.099285s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.107084s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.080152s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_missing [0.126860s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.104773s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.040446s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.130084s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.032924s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.078865s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.078749s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.053683s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.085756s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.055405s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.069820s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.043444s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.036547s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.069184s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.082240s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.081228s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.103049s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.644999s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.127307s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.625455s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.031086s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.050881s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.099346s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.085087s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.118666s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.193716s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.081580s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.104504s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http [0.056920s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.087164s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.038526s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.025633s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.028743s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.069389s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift [0.043341s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.036852s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.030885s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.125946s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.318537s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.048279s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.068928s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.043458s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.172647s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.042579s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.029244s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.203705s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.033439s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [0.082843s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.035521s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.107280s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.038078s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.070418s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.071577s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.084328s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.130740s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.067736s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.049764s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.063594s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.086354s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.091551s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.071926s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.084586s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.053004s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.058061s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.371856s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.071986s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.098406s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.103607s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.142894s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.129495s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.137922s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off [0.127889s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.068357s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.222306s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.115275s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on [0.154272s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.079944s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [0.126915s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.099837s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [0.052903s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.286326s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.076067s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.107363s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.065005s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.068914s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate [0.066352s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.096393s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [0.100665s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.146328s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.361231s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.133092s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.141407s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.146605s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.181351s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.073976s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.346907s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.067823s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.042424s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.163425s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.058965s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.175324s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.157345s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.404910s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [0.100226s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.210398s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.158434s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.217630s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.150796s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.077724s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.132395s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.110060s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.132108s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.101704s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.153864s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.165312s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.118508s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.105856s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_create_all_components [0.179485s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.223806s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.067490s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.137445s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings [0.126006s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.071475s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.125261s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_get_properties [0.105113s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.111918s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.106895s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean [0.186056s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.138620s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.147350s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.191510s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.332523s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.134869s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.074764s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.099745s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation [0.071251s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.056242s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.037632s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.032395s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.060908s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.135701s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.674098s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.126425s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.299771s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.294864s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.079820s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state [0.099035s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.154779s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.197108s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance [0.171073s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.174287s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.200059s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.071080s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout [0.227481s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.045981s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.041514s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.145553s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate [0.085224s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.063900s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean [0.096591s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.089565s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.072137s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.077235s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy [0.148433s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.079449s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.104814s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.062145s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.032157s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.095638s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.061671s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.055021s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.036980s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.429065s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.053187s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.038166s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.048073s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.086528s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.135449s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.077653s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.081163s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.045741s] ... ok
{3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.092797s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.074175s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.082833s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.089013s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.041492s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.095343s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [0.083759s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.137864s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.149264s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.038455s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.116701s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.034919s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.059082s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.088951s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.063778s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.066561s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.064806s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate [0.066219s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.068729s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset [0.075772s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_service_steps [0.092840s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.883265s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.056946s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.152085s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.094808s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.088893s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.114335s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.076133s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.165879s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.086978s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.546257s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset [0.156150s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.187302s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.258316s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.092260s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.118313s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 [0.077131s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.069687s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.088610s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.214637s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.066325s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b [0.097625s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track [0.090082s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.043717s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.066706s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.099686s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.089139s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.087246s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot [0.104150s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.100552s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot [0.091385s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks [0.068630s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [0.080730s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.051860s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.529094s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config [0.058479s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.066513s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.059833s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.126280s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.075142s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.045649s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.024217s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.094855s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.102520s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.039387s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.049256s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.028542s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.131993s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.138943s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.054155s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.073137s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.061051s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.042991s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.058671s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.050786s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.311836s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.039516s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.033384s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.063538s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.048597s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.047634s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.252210s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.085467s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_service [0.099166s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.056040s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.047076s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.128471s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail [0.845469s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.100613s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.039697s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.052616s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.038934s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.156605s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.053728s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.258514s] ... ok
{1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.062907s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.021167s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.020716s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.176914s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.034746s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.037725s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.129943s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.040166s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.062347s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.033603s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.202410s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.168564s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.046940s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.065076s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.120626s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.087938s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 [0.204330s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.087063s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.149106s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.076068s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service [0.106009s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.066547s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.201632s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.048973s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.029834s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.023101s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.020469s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.160625s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.026693s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.171295s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.041048s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.045383s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.097665s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image [0.099752s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.057305s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.057022s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.097940s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.076610s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.131165s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.066968s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.056887s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.079606s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.083650s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http [0.082031s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.086478s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.085616s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.087084s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum [0.415399s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.069275s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.099995s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.129636s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.080628s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up [0.160694s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.073488s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type [0.122363s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.083826s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.092397s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.161637s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy [0.235146s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_part_img_checked [0.063565s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.075650s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.137211s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track [0.183246s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.062489s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.088383s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.065589s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.077461s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false [0.164430s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source [0.040338s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.032188s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.168110s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id [0.054708s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot [0.145281s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.094250s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.095230s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties [0.068916s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.141191s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.176191s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.082076s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.083852s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash [0.084564s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.262730s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.051340s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track [0.110384s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot [0.131750s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.052211s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.167094s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate [0.154490s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.095076s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook [0.055353s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success [0.156217s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.127109s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook_no_hook_registered [0.110859s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.053628s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.098975s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot [0.145966s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.143939s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url [0.187757s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.098583s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_deploy [0.157079s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image [0.086218s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.094844s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive [0.090720s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.083407s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail [0.143373s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.052146s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.077533s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_deploy [0.086758s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.046465s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.035887s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.029905s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_servicing [0.074930s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.040510s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies [0.168609s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.051331s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_pregenerated_token [0.123271s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.059471s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue [0.085880s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance [0.069433s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance_no_power_on [0.131766s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result [0.168019s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc [0.079725s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot [0.101808s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result [0.060690s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail [0.148564s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.166672s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.079788s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.062607s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.618933s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps [0.156874s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.068080s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.113169s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw [0.062313s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_lenovo [0.063112s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy [0.107289s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.030744s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback [0.023169s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.035678s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step [0.083926s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid [0.106005s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_not_safe_image [0.044883s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid_whole_disk [0.058691s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_part_already_exists [0.043311s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running [0.100232s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_image [0.089737s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.076818s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.041843s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.020450s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid [0.164120s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.030476s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step [0.111306s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.045050s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.027468s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.025222s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.029382s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.049301s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step [0.159194s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid [0.210188s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.042032s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.041270s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_bios [0.103423s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.045526s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found [0.147326s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.042432s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_bios [0.128211s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.087681s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps [0.096898s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.077487s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.077999s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.182116s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.078032s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi [0.274757s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.089735s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface [0.185777s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.124005s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.061519s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.049591s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.087349s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.046756s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.068866s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.029455s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps [0.212663s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.025205s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param [0.031981s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail [0.195233s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.058973s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities [0.129515s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.060040s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_uefi [0.099632s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image [0.100659s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.107293s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none [0.159273s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.092360s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.045499s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps [0.159632s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.034240s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.036906s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy [0.103641s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.076558s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.057412s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy [0.107763s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface [0.077959s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image_bios [0.472627s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.138392s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_with_prep [0.053334s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps [0.078809s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.051297s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.118280s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_post_clean_step_hook [0.067039s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.022813s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.030698s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.030279s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.081469s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.023570s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.054387s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot [0.149550s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.066882s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.039007s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.042729s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.051050s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.027114s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.053730s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.042310s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails [0.174546s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.085482s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.100209s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.027210s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.031339s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition [0.112435s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.036250s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll [0.041708s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.140131s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network [0.084081s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.087192s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network_fails [0.135393s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.111284s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent [0.117862s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.121379s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_get_power_state_fails [0.111550s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.130118s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify [0.491626s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_no_power_on_support [0.125894s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.063291s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.093550s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable [0.062275s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.021703s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.091070s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off [0.154046s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.048708s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal [0.069935s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.070119s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed [0.135235s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.120625s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.057648s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.131362s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_off_fails [0.160151s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.063303s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.110381s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.056924s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_doesnt_complete [0.071246s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.046497s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.076615s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.032283s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_fails [0.082244s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.045045s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.058729s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.049686s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.087113s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.021289s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.024415s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_race [0.167949s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.026050s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.125527s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.055157s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.043261s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning [0.143326s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.088274s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries [0.045837s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.021240s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify [0.057783s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.096473s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.101693s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.038135s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.032356s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.086006s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.081362s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.031005s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.034078s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.083416s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.036867s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.020260s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.115143s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.032677s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail [0.071688s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default [0.048604s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.064131s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set [0.047973s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.145293s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.031574s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.028368s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.027937s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.017973s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.017909s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.112705s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.394542s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure [0.067354s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command [0.107584s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.086674s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception [0.074336s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.046065s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot [0.102979s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested [0.081931s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.085451s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported [0.047434s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running [0.072894s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure [0.052472s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.106186s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown [0.098553s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception [0.071518s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested [0.052402s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook [0.098057s] ... ok
{3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported [0.058688s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.161782s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path [0.039266s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.034406s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.117801s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.035380s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.148337s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.069703s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning [0.124581s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.117566s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.091318s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.044513s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.115102s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.067008s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.054567s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.029388s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing [0.261388s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.028293s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.132607s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.042157s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.029994s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.081530s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.040820s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.031086s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.088165s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_after_reboot [0.211460s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.070410s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.075162s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.037871s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.027753s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_reboot [0.145708s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.067519s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.137136s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.058870s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.076607s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_running [0.131678s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.071333s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required [0.075717s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.139823s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.043867s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.065151s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.024861s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.021982s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.080265s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.073208s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.041909s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.045446s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.117537s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.030059s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.122028s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.063664s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.088634s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.033021s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.148482s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.164359s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.123245s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.175193s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.292629s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.127307s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.071758s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.202842s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.036917s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.114187s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.083070s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.136989s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.149870s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [0.095094s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.125111s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.125919s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.128426s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.113105s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.078522s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.089119s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.080268s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.084515s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.097926s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.106951s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.121742s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.100406s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.599839s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.096171s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.088628s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.223102s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.113758s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_md5_not_permitted [0.056438s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.104777s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.125930s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port [0.085582s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port [0.063182s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.306786s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_image [0.173775s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.078350s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha256 [0.115991s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.163858s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.043389s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.235411s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha512 [0.141938s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.036073s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.060947s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.068991s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy [0.134100s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_service_error [0.159883s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.035839s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.072526s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.088088s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.148189s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error [0.087403s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.144751s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.174840s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.077852s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.229776s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.063666s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.153007s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.083076s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.062410s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.069531s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare [0.223794s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.072236s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_checksum [0.116699s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.060439s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.084043s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active [0.170229s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs [0.104053s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.068771s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.061802s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.117247s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.085215s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning [0.219106s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.054237s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.114784s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.069910s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid [0.070644s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.034485s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.030420s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.059841s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.139564s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_reboot_to_instance [0.254398s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.051084s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.053789s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_http_boot_not_enabled [0.168431s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.128339s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.148545s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.160174s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.346475s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.067398s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.078847s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.041747s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.109468s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.164901s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.088094s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.049901s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.102226s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.077592s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.047717s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.101903s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_no_input [0.071709s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy [0.287533s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries [0.083208s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.143943s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.162865s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.476756s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.459325s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.062788s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.105105s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.029629s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.033989s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.098409s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.090071s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.040113s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.109367s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.020396s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.047693s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.072050s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.021355s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.178392s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.032330s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.039123s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.041509s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.105724s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.060504s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.020934s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port [0.585734s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.093235s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port [0.080549s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip [0.069614s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.110211s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.067182s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip_as_url [0.053413s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.059326s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.113503s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.102142s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.061045s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host [0.081233s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.139330s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.128497s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host_in_url [0.091894s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.084252s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.088445s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare [0.189095s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.130238s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.060059s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.028301s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active [0.151963s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.165915s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning [0.068855s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.067153s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port [0.199713s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor [0.107698s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk [0.187471s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.076231s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing [0.065527s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.068984s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning [0.074453s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.102369s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate [0.098183s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.072600s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.140449s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.556876s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.049394s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance [0.103181s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.185387s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active [0.066359s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.160420s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.124535s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch [0.472529s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios [0.131399s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [0.089443s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios [0.162868s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.149655s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device [0.160808s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk [0.195883s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.124039s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none [0.094386s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail [0.072007s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.115446s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk [0.139121s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none [0.103019s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios [0.107928s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.119500s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties [0.046095s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices [0.112883s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg [0.168245s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device [0.082411s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail [0.051022s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback [0.137838s] ... ok
{1} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate [0.047017s] ... ok
{1} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.031477s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk [0.120372s] ... ok
{1} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.052110s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.022194s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.062153s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.031345s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.147240s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.063988s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.032239s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.131112s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.716203s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.080953s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.030973s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.018525s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.072811s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.089866s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.117409s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.216442s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios [0.069759s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.141848s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.138438s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.180638s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.121217s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.148924s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.110463s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios [0.078819s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.049881s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.260803s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios [0.075589s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.082858s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.065590s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.087640s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.066188s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci [0.076527s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.047970s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.053101s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.052305s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.329955s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci [0.140942s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.148803s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.068094s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios [0.063997s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.220981s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.097616s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi [0.085020s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.103078s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.088369s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios [0.056339s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.087511s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.138567s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi [0.126106s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.077291s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.106399s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.144166s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.081302s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.081842s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.148578s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.098285s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.045414s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.142512s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_parse_sleep_range [0.096802s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.110154s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.097182s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.145058s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.099987s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.085624s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.147986s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.089392s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_range [0.076634s] ... ok
{1} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.067498s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.111134s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.128278s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.072463s] ... ok
{1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.108175s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.067731s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.123147s] ... ok
{1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.067619s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.053510s] ... ok
{1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.081202s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.125087s] ... ok
{1} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.087439s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_from_clean_step [0.131886s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.129782s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_is_in_step_list [0.098179s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.056679s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append [0.112309s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.462086s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.114395s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.103004s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.035316s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.036817s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.078775s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.110195s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.053766s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.044031s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.114280s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.025301s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.156185s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.071683s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.095484s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.097027s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.070066s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.068027s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.213477s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.063514s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot [0.061504s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.044683s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.046251s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.215827s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.059197s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.066469s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso [0.110628s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.136010s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.060461s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.100990s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability [0.036565s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_http_boot_enabled [0.043999s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.066862s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.105252s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk [0.087347s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.103303s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string [0.081432s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.143131s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.172006s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.027351s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.077974s] ... ok
{1} ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces [0.074075s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.047311s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.157899s] ... ok
{0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.031790s] ... ok
{0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.048748s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.122055s] ... ok
{0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.057650s] ... ok
{0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.051291s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.108738s] ... ok
{0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.085716s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.066146s] ... ok
{0} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.039331s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.414113s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.101130s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.032112s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.081356s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.023525s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.020600s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.062986s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.060419s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.031556s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.022070s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.065402s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.032539s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.097341s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.029088s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.047000s] ... ok
{1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.039325s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.070981s] ... ok
{1} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_create [0.022923s] ... ok
{1} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.020881s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.095791s] ... ok
{1} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.023522s] ... ok
{1} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.029570s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.106840s] ... ok
{1} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.035708s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.081215s] ... ok
{1} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.026231s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.025766s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.067937s] ... ok
{1} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.027519s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create [0.038120s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.024660s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.070781s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.105236s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get [0.036614s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.026274s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.062787s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.077131s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.052389s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.071278s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.066515s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.039018s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.031870s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.118945s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list [0.103647s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.031151s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors [0.066255s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.075994s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.056971s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.032016s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.052341s] ... ok
{1} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.069926s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.049948s] ... ok
{1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_create [0.051544s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.061298s] ... ok
{1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.041217s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.092834s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.043682s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.028670s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.032726s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.045720s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.022256s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.017640s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.038629s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.049040s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.091564s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.045815s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.037089s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.132172s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.051868s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.059735s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.046120s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected [0.052255s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.028050s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.117029s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.032027s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.022440s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.063465s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.055363s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.022572s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.385301s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.080304s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.031731s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.058028s] ... ok
{1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.037426s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.021806s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.023969s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.089894s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.065755s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.037282s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.042566s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.069049s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.037750s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.044658s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.066917s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.061204s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.060952s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.047263s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.105529s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.054373s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.062597s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.034193s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.062331s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.027659s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.021168s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.103702s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.056187s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.046315s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.025762s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.022653s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.090995s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.050466s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.035336s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.024050s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.018116s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.045243s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.068121s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.017891s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.028816s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.018522s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.057472s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.069715s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.037817s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.083441s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password [0.042189s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.049196s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.059213s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.021461s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.034187s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.019545s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.035111s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.036651s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.065611s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.061330s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.040875s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.031238s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.076930s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.029405s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.022511s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.034251s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.020544s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.035637s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.030278s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.032505s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.063571s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.103536s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.033718s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.021867s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.071379s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing [0.026119s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.029419s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.057592s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password [0.106965s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove [0.021761s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.041917s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.069120s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.093545s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.115839s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.094070s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.068089s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.463553s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception [0.062919s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.087162s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password [0.061854s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.068551s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.101015s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception [0.055302s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.040520s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.021054s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.079528s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.060012s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception [0.094518s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.052151s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.026124s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.032716s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.050953s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password [0.062134s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.030222s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.043165s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.025075s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception [0.064914s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.028138s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.104284s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.072442s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.075458s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.054953s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.072040s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.078608s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.096118s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.108783s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.071267s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.086670s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.066139s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.026980s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.055172s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.051067s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.027910s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.085557s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.026547s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.034328s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.037848s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.050696s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.076078s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.110208s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.578520s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.065695s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.089624s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name [0.114441s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.125187s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.045907s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.059302s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.031428s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.091955s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.053873s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.090476s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.065381s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [0.032389s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner [0.037361s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [0.052933s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.035497s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.052793s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.110637s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.067693s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.039387s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.042199s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.037021s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.087277s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.033661s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.056815s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [0.026324s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.060403s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.045326s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [0.054661s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.033494s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.059237s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.051311s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.053740s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.050231s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.058957s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.062823s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.066698s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [0.061722s] ... ok
{1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.047384s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.051543s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.037709s] ... ok
{1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.039705s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.043896s] ... ok
{1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.034735s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.060002s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.038355s] ... ok
{1} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.045377s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [0.048822s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.057409s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.080616s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [0.055854s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [0.058928s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [0.026427s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.037141s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.033389s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.048951s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.036578s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.042507s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.048528s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.059045s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [0.035182s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.028996s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.024369s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [0.047833s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.029440s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.107734s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [0.057787s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.036111s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.080901s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.042906s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.094321s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.052636s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [0.063602s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [0.070352s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.042828s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.115212s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.044745s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.083348s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.062207s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [0.136494s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.025324s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.041946s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects [0.057145s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.085053s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.028307s] ... ok
{1} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.081799s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.060891s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.041915s] ... ok
{1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.055974s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.037730s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.065893s] ... ok
{1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.077994s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.039296s] ... ok
{1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.021325s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.087991s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.032293s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.077688s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.170967s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.107236s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.077654s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.100430s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.089177s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.090015s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.035984s] ... ok
{0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id [0.024967s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.085919s] ... ok
{0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client [0.064845s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.075492s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.044312s] ... ok
{0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info [0.381982s] ... ok
{0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config [0.059309s] ... ok
{0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port [0.028092s] ... ok
{0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config [0.099027s] ... ok
{0} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id [0.069381s] ... ok
Exception ignored in: <function _TemporaryFileCloser.__del__ at 0x7f787548c160>
Traceback (most recent call last):
  File "/usr/lib64/python3.9/tempfile.py", line 461, in __del__
  File "/usr/lib64/python3.9/tempfile.py", line 457, in close
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpttzeyxkm/tmprp6h5l1b'
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.596871s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.051801s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.039747s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.083268s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.084837s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.041859s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.019297s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.047756s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.025849s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.018678s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.042470s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.052872s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.094670s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.063044s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.020385s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.060411s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.034756s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.059757s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.022777s] ... ok
{0} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.018276s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.106389s] ... ok
{0} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.019417s] ... ok
{0} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.033100s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console [0.069246s] ... ok
{0} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.026777s] ... ok
{0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.022646s] ... ok
{0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.024261s] ... ok
{0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.026705s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.105724s] ... ok
{0} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.040568s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.036773s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.018546s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.031412s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.033121s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.150815s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.030611s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.030274s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.020527s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.101457s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.029831s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.020380s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.020121s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.064790s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.029182s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.027496s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.045638s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.100971s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.044190s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.027916s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.055169s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.040293s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.094909s] ... ok
{0} ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces [0.061874s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.074313s] ... ok
{0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.085971s] ... ok
{0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.089260s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.109371s] ... ok
{0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector [0.067051s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console [0.092439s] ... ok
{0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios [0.051816s] ... ok
{0} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.054876s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.158609s] ... ok
{0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.097198s] ... ok
{0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.040968s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.069970s] ... ok
{0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.046911s] ... ok
{0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.060366s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console [0.090850s] ... ok
{0} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.041507s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.048277s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.038822s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.038387s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.022936s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.071716s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.095111s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.063631s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.083753s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.172901s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.074713s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.025832s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_http_boot_enabled [0.066491s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.027244s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.027631s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk [0.093701s] ... ok
{0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.044617s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.026685s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.034659s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.023290s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.098836s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.032174s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.053891s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.132343s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.079783s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.038727s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.074939s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.022510s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.022540s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.068685s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.040722s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.021877s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.024151s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.052412s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.020960s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.034712s] ... ok
{0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.038745s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.029242s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance [0.058007s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.023364s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.022781s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active [0.057964s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.029345s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.055453s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.041521s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart [0.114612s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.061477s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios [0.084710s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.038057s] ... ok
{0} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.031382s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.021475s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_lenovo [0.074167s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.086315s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.082568s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.259430s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.052766s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.163319s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.024523s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.038752s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.043908s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.020614s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.049614s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.030938s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios [0.198816s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.049900s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.070084s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.039337s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.020622s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.024486s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.030376s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.089938s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.020834s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.029554s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.027930s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.020773s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.098499s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.019135s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.017442s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.016444s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.016706s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.068534s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.031660s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.023282s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.016863s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.015910s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios [0.085386s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.015885s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.016446s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.015944s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.028277s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.078646s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.025716s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.017256s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.019404s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.067051s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.017447s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.023876s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.017288s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.018212s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.016136s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.021375s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.114117s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.018430s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.020600s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.028446s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.017617s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.017174s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.027911s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.017629s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.020679s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.019078s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.018450s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.053251s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.051752s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.053828s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.033058s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.049154s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.020554s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.476170s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.016205s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.019352s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.022252s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.018342s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.022597s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.095263s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.021864s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.019051s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.020453s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.026350s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.017345s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.017311s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.023715s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.154995s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.022336s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.017714s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.030405s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.025662s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.089653s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.027380s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.042931s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.081252s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.033220s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.026723s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.026981s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.022431s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.027264s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.139965s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.023775s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.021415s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.026386s] ... ok
{0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.024216s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.085426s] ... ok
{0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.037943s] ... ok
{0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.038151s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.077427s] ... ok
{0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.031490s] ... ok
{0} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.027530s] ... ok
{0} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.031680s] ... ok
{0} ironic.tests.unit.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.050560s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection [0.145324s] ... ok
{0} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.046102s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.120861s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set [0.127392s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id [0.081588s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot [0.076959s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local [0.049924s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.060913s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state [0.065438s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail [0.064498s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties [0.028269s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot [0.055600s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout [0.046009s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power [0.044323s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail [0.055309s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout [0.050788s] ... ok
{3} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate [0.042921s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.022305s] ... ok
{3} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.079899s] ... ok
{3} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid [0.081428s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces [0.053743s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.043003s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.039994s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.044460s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.070671s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.070763s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.055060s] ... ok
{3} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.051615s] ... ok
{3} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.068914s] ... ok
{3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.026031s] ... ok
{3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.038129s] ... ok
{3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.047776s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.026141s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.022796s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.021749s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.024633s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.023006s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.023733s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.031553s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.021653s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.023651s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.025333s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.021692s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.043844s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.057531s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.026431s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.022400s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.021587s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.021652s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.027023s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.021883s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.021595s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.452642s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.023631s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.021773s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.026514s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.047085s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.023221s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.025955s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.026349s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.025092s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.026500s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing [0.027747s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set [0.025003s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.023086s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.023267s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.026424s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.040382s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.021377s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.021429s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.020996s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.025929s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.023178s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.022189s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.021688s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.020348s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.020238s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.034733s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.031940s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.035226s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.048341s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.032630s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.027741s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.027643s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.052017s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.024276s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_missing [0.024777s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.024567s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.031068s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.084237s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing [0.070894s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.052400s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.039132s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.024334s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.020808s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.023122s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.069258s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.028033s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.035381s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.044394s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.036588s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.024495s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.030511s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.030397s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.025739s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.035369s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.028403s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.044607s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.022930s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.020149s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.020497s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.020340s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.028068s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing [0.031461s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.042262s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing [0.025660s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.022301s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.023133s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.028665s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.030676s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.032707s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.026478s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.037289s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.030634s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.030993s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.027702s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.022078s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.022569s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.035891s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.022890s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.020612s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.021897s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.023010s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.023874s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.022173s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.040321s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.023322s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.025257s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.019418s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.019161s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.022538s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.024274s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.027910s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.042221s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.030379s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.020439s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.024787s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_deny_macs [0.026504s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.025674s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_only_new_macs [0.025372s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_removed_nodes [0.047941s] ... ok
{3} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.093210s] ... ok
{3} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.046378s] ... ok
======
Totals
======
Ran: 9621 tests in 248.0161 sec.
 - Passed: 9571
 - Skipped: 50
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 0
Sum of execute time for each test: 848.4630 sec.
==============
Worker Balance
==============
 - Worker 0 (2441 tests) => 0:04:01.864974
 - Worker 1 (2483 tests) => 0:03:55.131508
 - Worker 2 (2017 tests) => 0:02:16.116258
 - Worker 3 (2680 tests) => 0:04:07.768242
Test id                                                                                                                        Runtime (s)
-----------------------------------------------------------------------------------------------------------------------------  -----------
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on  4.139
ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state                        3.526
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout  3.143
ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit_stream_optimized        3.140
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout     3.128
ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit                         2.783
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail                2.218
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok          2.119
ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple                                                    2.068
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok       2.062
___________________________________ summary ____________________________________
  py39: commands succeeded
  congratulations :)
+ RPM_EC=0
++ jobs -p
+ exit 0
Processing files: openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.noarch
Provides: openstack-ironic = 1:24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.noarch
warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/lib/python3.9/site-packages/ironic_tests.egg_info
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.Yu9jbY
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/share/doc/openstack-ironic-common
+ cp -pr README.rst /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/share/doc/openstack-ironic-common
+ cp -pr etc/ironic/policy.yaml.sample /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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.Oazq3r
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/share/licenses/openstack-ironic-common
+ cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/share/licenses/openstack-ironic-common
+ RPM_EC=0
++ jobs -p
+ exit 0
Provides: config(openstack-ironic-common) = 1:24.1.4-0.20250328101425.1e9877f.el9 openstack-ironic-common = 1:24.1.4-0.20250328101425.1e9877f.el9 python3.9dist(ironic) = 24.1.4~~dev12 python3dist(ironic) = 24.1.4~~dev12
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: ((python3.9dist(jsonpatch) < 1.20 or python3.9dist(jsonpatch) > 1.20) with python3.9dist(jsonpatch) >= 1.16) ((python3.9dist(oslo-service) < 1.28.1 or python3.9dist(oslo-service) > 1.28.1) with python3.9dist(oslo-service) >= 1.24) ((python3.9dist(pecan) < 1.0.2 or python3.9dist(pecan) > 1.0.2) with (python3.9dist(pecan) < 1.0.3 or python3.9dist(pecan) > 1.0.3) with (python3.9dist(pecan) < 1.0.4 or python3.9dist(pecan) > 1.0.4) with (python3.9dist(pecan) < 1.2 or python3.9dist(pecan) > 1.2) with python3.9dist(pecan) >= 1) ((python3.9dist(python-cinderclient) < 4 or python3.9dist(python-cinderclient) > 4) with python3.9dist(python-cinderclient) >= 3.3) /usr/bin/python3 /usr/bin/sh python(abi) = 3.9 python3.9dist(alembic) >= 1.4.2 python3.9dist(automaton) >= 1.9 python3.9dist(construct) >= 2.9.39 python3.9dist(eventlet) >= 0.30.1 python3.9dist(futurist) >= 1.2 python3.9dist(ironic-lib) >= 6 python3.9dist(jinja2) >= 3 python3.9dist(jsonschema) >= 4 python3.9dist(keystoneauth1) >= 4.2 python3.9dist(keystonemiddleware) >= 9.5 python3.9dist(netaddr) python3.9dist(openstacksdk) >= 0.48 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) >= 3.7 python3.9dist(oslo-rootwrap) >= 5.8 python3.9dist(oslo-serialization) >= 2.25 python3.9dist(oslo-upgradecheck) >= 1.3 python3.9dist(oslo-utils) >= 4.5 python3.9dist(oslo-versionedobjects) >= 1.31.2 python3.9dist(osprofiler) >= 1.5 python3.9dist(pbr) >= 3.1.1 python3.9dist(psutil) >= 3.2.2 python3.9dist(pycdlib) >= 1.11 python3.9dist(python-glanceclient) >= 2.8 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
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-24.1.4-0.20250328101425.1e9877f.el9.noarch
Provides: openstack-ironic-api = 1:24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.noarch
Provides: openstack-ironic-conductor = 1:24.1.4-0.20250328101425.1e9877f.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-dnsmasq-tftp-server-24.1.4-0.20250328101425.1e9877f.el9.noarch
Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.Njehpe
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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-24.1.4-0.20250328101425.1e9877f.el9.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server
+ cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.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:24.1.4-0.20250328101425.1e9877f.el9 openstack-ironic-dnsmasq-tftp-server = 1:24.1.4-0.20250328101425.1e9877f.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: python3-ironic-tests-24.1.4-0.20250328101425.1e9877f.el9.noarch
Provides: python-ironic-tests = 1:24.1.4-0.20250328101425.1e9877f.el9 python3-ironic-tests = 1:24.1.4-0.20250328101425.1e9877f.el9 python3.9-ironic-tests = 1:24.1.4-0.20250328101425.1e9877f.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:24.1.4-0.20250328101425.1e9877f.el9
Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64
Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.src.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-api-24.1.4-0.20250328101425.1e9877f.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-dnsmasq-tftp-server-24.1.4-0.20250328101425.1e9877f.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-conductor-24.1.4-0.20250328101425.1e9877f.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-common-24.1.4-0.20250328101425.1e9877f.el9.noarch.rpm
Wrote: /builddir/build/RPMS/python3-ironic-tests-24.1.4-0.20250328101425.1e9877f.el9.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.xllJHh
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-24.1.4.dev12
+ /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-24.1.4-0.20250328101425.1e9877f.el9.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
Child return code was: 0