Mock Version: 5.5 Mock Version: 5.5 Mock Version: 5.5 Mock Version: 5.5 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;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1022gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.src.rpm Child return code was: 0 Mock Version: 5.5 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;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1022gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.2-0.20240905084225.8293efd.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;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1022gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.EAKNot + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-24.1.2.dev27 + /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-24.1.2.dev27-0.20240905084225.8293efd.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-24.1.2.dev27 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/bin/git init -q + /usr/bin/git config user.name rpm-build + /usr/bin/git config user.email '' + /usr/bin/git config gc.auto 0 + /usr/bin/git add --force . + /usr/bin/git commit -q --allow-empty -a --author 'rpm-build ' -m 'openstack-ironic-24.1.2 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.610GNK + umask 022 + cd /builddir/build/BUILD + cd ironic-24.1.2.dev27 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-24.1.2.dev27/.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' + 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 ' + TMPDIR=/builddir/build/BUILD/ironic-24.1.2.dev27/.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.2.dev27/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.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 default build backend Requirement not satisfied: wheel Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.2-0.20240905084225.8293efd.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;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1022gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.djj0LB + umask 022 + cd /builddir/build/BUILD + cd ironic-24.1.2.dev27 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-24.1.2.dev27/.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' + 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 ' + TMPDIR=/builddir/build/BUILD/ironic-24.1.2.dev27/.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.2.dev27/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.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 default build backend Requirement satisfied: wheel (installed: wheel 0.36.2) 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 5.11.1) Handling tox-current-env >= 0.0.6 from tox itself Requirement not satisfied: tox-current-env >= 0.0.6 Exiting dependency generation pass: tox itself + cat /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.2-0.20240905084225.8293efd.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;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1022gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.6h2pdo + umask 022 + cd /builddir/build/BUILD + cd ironic-24.1.2.dev27 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-24.1.2.dev27/.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' + 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 ' + TMPDIR=/builddir/build/BUILD/ironic-24.1.2.dev27/.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.2.dev27/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.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 default build backend Requirement satisfied: wheel (installed: wheel 0.36.2) 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 5.11.1) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.8) ___________________________________ summary ____________________________________ py39: commands succeeded congratulations :) Handling pbr>=3.1.1 from tox --print-deps-only: py39 Requirement satisfied: pbr>=3.1.1 (installed: pbr 5.11.1) 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.8.0) 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.2.dev27/ironic-24.1.2.dev27.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 5.11.1) 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.8.0) 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.2-0.20240905084225.8293efd.el9.x86_64-pyproject-buildrequires + rm -rfv ironic-24.1.2.dev27.dist-info/ removed 'ironic-24.1.2.dev27.dist-info/AUTHORS' removed 'ironic-24.1.2.dev27.dist-info/LICENSE' removed 'ironic-24.1.2.dev27.dist-info/METADATA' removed 'ironic-24.1.2.dev27.dist-info/entry_points.txt' removed 'ironic-24.1.2.dev27.dist-info/pbr.json' removed 'ironic-24.1.2.dev27.dist-info/top_level.txt' removed directory 'ironic-24.1.2.dev27.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.2-0.20240905084225.8293efd.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;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1022gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.tRBPJF + umask 022 + cd /builddir/build/BUILD + cd ironic-24.1.2.dev27 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-24.1.2.dev27/.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' + 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 ' + TMPDIR=/builddir/build/BUILD/ironic-24.1.2.dev27/.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.2.dev27/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.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 default build backend Requirement satisfied: wheel (installed: wheel 0.36.2) 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 5.11.1) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.8) ___________________________________ summary ____________________________________ py39: commands succeeded congratulations :) Handling pbr>=3.1.1 from tox --print-deps-only: py39 Requirement satisfied: pbr>=3.1.1 (installed: pbr 5.11.1) 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.1) 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.8.0) 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.2.dev27/ironic-24.1.2.dev27.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 5.11.1) 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.1) 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.8.0) 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.2-0.20240905084225.8293efd.el9.x86_64-pyproject-buildrequires + rm -rfv ironic-24.1.2.dev27.dist-info/ removed 'ironic-24.1.2.dev27.dist-info/LICENSE' removed 'ironic-24.1.2.dev27.dist-info/AUTHORS' removed 'ironic-24.1.2.dev27.dist-info/METADATA' removed 'ironic-24.1.2.dev27.dist-info/top_level.txt' removed 'ironic-24.1.2.dev27.dist-info/pbr.json' removed 'ironic-24.1.2.dev27.dist-info/entry_points.txt' removed directory 'ironic-24.1.2.dev27.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-24.1.2-0.20240905084225.8293efd.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;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1022gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target x86_64 /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.Q4SUyu + umask 022 + cd /builddir/build/BUILD + cd ironic-24.1.2.dev27 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ironic-24.1.2.dev27/.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' + 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 ' + TMPDIR=/builddir/build/BUILD/ironic-24.1.2.dev27/.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.2.dev27/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.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 default build backend Requirement satisfied: wheel (installed: wheel 0.36.2) 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 5.11.1) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.8) ___________________________________ summary ____________________________________ py39: commands succeeded congratulations :) Handling pbr>=3.1.1 from tox --print-deps-only: py39 Requirement satisfied: pbr>=3.1.1 (installed: pbr 5.11.1) 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.1) 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.8.0) 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.2.dev27/ironic-24.1.2.dev27.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 5.11.1) 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.1) 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.8.0) 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.2-0.20240905084225.8293efd.el9.x86_64-pyproject-buildrequires + rm -rfv ironic-24.1.2.dev27.dist-info/ removed 'ironic-24.1.2.dev27.dist-info/AUTHORS' removed 'ironic-24.1.2.dev27.dist-info/LICENSE' removed 'ironic-24.1.2.dev27.dist-info/METADATA' removed 'ironic-24.1.2.dev27.dist-info/entry_points.txt' removed 'ironic-24.1.2.dev27.dist-info/pbr.json' removed 'ironic-24.1.2.dev27.dist-info/top_level.txt' removed directory 'ironic-24.1.2.dev27.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.rc5Gtm + umask 022 + cd /builddir/build/BUILD + cd ironic-24.1.2.dev27 + mkdir -p /builddir/build/BUILD/ironic-24.1.2.dev27/.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' + 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 ' + TMPDIR=/builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-24.1.2.dev27/pyproject-wheeldir Processing /builddir/build/BUILD/ironic-24.1.2.dev27 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.2.dev27/.pyproject-builddir/tmpgpav2bc5 /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.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info writing /builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info/top_level.txt writing pbr to /builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt writing manifest file '/builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/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.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-modern-metadata-qz2u8io4/ironic-24.1.2.dev27.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.2.dev27/.pyproject-builddir/tmpk37d4vk8 /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/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/drivers creating build/lib/ironic/drivers/modules creating build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/external.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/__init__.py -> build/lib/ironic/drivers/modules/storage creating build/lib/ironic/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 creating build/lib/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional creating build/lib/ironic/api copying ironic/api/wsgi.py -> build/lib/ironic/api copying ironic/api/method.py -> build/lib/ironic/api copying ironic/api/hooks.py -> build/lib/ironic/api copying ironic/api/functions.py -> build/lib/ironic/api copying ironic/api/config.py -> build/lib/ironic/api copying ironic/api/app.py -> build/lib/ironic/api copying ironic/api/__init__.py -> build/lib/ironic/api creating build/lib/ironic/tests/unit 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/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/tests/unit/db copying ironic/tests/unit/db/utils.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_targets.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_connectors.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_shard.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_ports.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_portgroups.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_nodes.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_traits.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_tags.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_inventory.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_history.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_firmware_component.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_deploy_templates.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_conductor.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_bios_settings.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_allocations.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db creating build/lib/ironic/drivers/modules/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/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 creating build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_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/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking creating build/lib/ironic/api/controllers copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers copying ironic/tests/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/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 creating build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/raid.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo creating build/lib/ironic/drivers/modules/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 creating build/lib/ironic/tests/unit/drivers/modules 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/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/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/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/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 copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers creating build/lib/ironic/tests/unit/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/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo creating build/lib/ironic/tests/unit/drivers/modules/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/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/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/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 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_args.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common creating build/lib/ironic/db copying ironic/db/migration.py -> build/lib/ironic/db copying ironic/db/api.py -> build/lib/ironic/db copying ironic/db/__init__.py -> build/lib/ironic/db creating build/lib/ironic/tests/unit/drivers/modules/inspector creating build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks copying ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks creating build/lib/ironic/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/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 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/api/middleware copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/auth_public_routes.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware copying ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector creating build/lib/ironic/tests/unit/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/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 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/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/pxe_filter copying ironic/pxe_filter/service.py -> build/lib/ironic/pxe_filter copying ironic/pxe_filter/dnsmasq.py -> build/lib/ironic/pxe_filter copying ironic/pxe_filter/__init__.py -> build/lib/ironic/pxe_filter creating build/lib/ironic/tests/unit/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/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network creating build/lib/ironic/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/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/test_service.py -> build/lib/ironic/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/lib/ironic/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/__init__.py -> build/lib/ironic/tests/unit/pxe_filter creating build/lib/ironic/tests/unit/drivers/modules/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/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/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 creating build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/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 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/common creating build/lib/ironic/common/glance_service copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/image_service.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service copying ironic/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/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 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 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 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) copying ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/lib/ironic/drivers/modules/inspector/hooks creating build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins creating build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library creating build/lib/ironic/drivers/modules/ansible/playbooks/roles creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/tests/unit/drivers/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples copying ironic/tests/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/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 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/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 copying ironic/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic creating build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/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/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/initial_grub_cfg.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ks.cfg.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers 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/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/common copying build/lib/ironic/common/isolinux_config.template -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/grub_conf.template -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/args.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/async_steps.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/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/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/common/glance_service copying build/lib/ironic/common/glance_service/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service creating build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/service.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter creating build/bdist.linux-x86_64/wheel/ironic/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/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 copying build/lib/ironic/__init__.py -> build/bdist.linux-x86_64/wheel/ironic copying build/lib/ironic/version.py -> build/bdist.linux-x86_64/wheel/ironic creating build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp creating build/bdist.linux-x86_64/wheel/ironic/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/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/api creating build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/auth_public_routes.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/json_ext.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware copying build/lib/ironic/api/middleware/parsable_error.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware creating build/bdist.linux-x86_64/wheel/ironic/api/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 copying build/lib/ironic/api/controllers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/base.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/link.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/root.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/controllers/version.py -> build/bdist.linux-x86_64/wheel/ironic/api/controllers copying build/lib/ironic/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/app.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/config.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/functions.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/hooks.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/method.py -> build/bdist.linux-x86_64/wheel/ironic/api copying build/lib/ironic/api/wsgi.py -> build/bdist.linux-x86_64/wheel/ironic/api creating build/bdist.linux-x86_64/wheel/ironic/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/unit creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter copying build/lib/ironic/tests/unit/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter copying build/lib/ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter copying build/lib/ironic/tests/unit/pxe_filter/test_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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 copying build/lib/ironic/tests/unit/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/policy_fixture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/raid_constants.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/stubs.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit copying build/lib/ironic/tests/unit/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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_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/objects copying build/lib/ironic/tests/unit/objects/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_deployment.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_fields.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_firmware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node_history.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_notification.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_objects.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_port.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_trait.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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 creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot-fallback.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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/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 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/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/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks 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/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/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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/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 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/db creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_models.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_types.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_allocations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_api.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_bios_settings.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_firmware_component.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_history.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_tags.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_traits.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_nodes.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_portgroups.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_ports.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_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/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/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/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/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 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/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/irmc creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/flat.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/firmware_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/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/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 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/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/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/ansible creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/ansible/deploy.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/agent.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/client.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/interface.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/lldp_parsers.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector copying build/lib/ironic/drivers/modules/inspector/lldp_tlvs.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/architecture.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/memory.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/ports.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/root_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks copying build/lib/ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks 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/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 running install_data creating build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.data creating build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.data/data creating build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.data/data/etc creating build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.data/data/etc/ironic copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.data/data/etc/ironic creating build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.data/data/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.data/data/etc/ironic/rootwrap.d/ running install_egg_info Copying ironic.egg-info to build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27-py3.9.egg-info running install_scripts Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-24.1.2.dev27.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.2.dev27.dist-info/WHEEL creating '/builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir/pip-wheel-xrosoxs2/tmpjcj82xyt/ironic-24.1.2.dev27-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/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_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.2.dev27.data/data/etc/ironic/rootwrap.conf' adding 'ironic-24.1.2.dev27.data/data/etc/ironic/rootwrap.d/ironic-utils.filters' adding 'ironic-24.1.2.dev27.data/scripts/ironic-api-wsgi' adding 'ironic-24.1.2.dev27.dist-info/AUTHORS' adding 'ironic-24.1.2.dev27.dist-info/LICENSE' adding 'ironic-24.1.2.dev27.dist-info/METADATA' adding 'ironic-24.1.2.dev27.dist-info/WHEEL' adding 'ironic-24.1.2.dev27.dist-info/entry_points.txt' adding 'ironic-24.1.2.dev27.dist-info/pbr.json' adding 'ironic-24.1.2.dev27.dist-info/top_level.txt' adding 'ironic-24.1.2.dev27.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.2.dev27-py3-none-any.whl size=2059867 sha256=7063454dc0c7223197e8075f80c0236c76302cac78721c9ce20d8b78b82a34e8 Stored in directory: /builddir/.cache/pip/wheels/72/7f/b2/b1f22be8283cdc3b5c125042929e559dbafc039dcb22a1cac4 Successfully built ironic + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.2T6t79 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64 ++ dirname /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64 + cd ironic-24.1.2.dev27 ++ ls /builddir/build/BUILD/ironic-24.1.2.dev27/pyproject-wheeldir/ironic-24.1.2.dev27-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=ironic==24.1.2.dev27 + '[' -z ironic==24.1.2.dev27 ']' + TMPDIR=/builddir/build/BUILD/ironic-24.1.2.dev27/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2.dev27/pyproject-wheeldir ironic==24.1.2.dev27 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.2.dev27/pyproject-wheeldir Processing ./pyproject-wheeldir/ironic-24.1.2.dev27-py3-none-any.whl Installing collected packages: ironic changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-api to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-conductor to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-dbsync to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-pxe-filter to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-rootwrap to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-status to 755 Successfully installed ironic-24.1.2.dev27 + '[' -d /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-status /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic: updating /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-api: updating /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-api-wsgi: updating /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-conductor: updating /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-dbsync: updating /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-pxe-filter: updating /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-rootwrap: updating /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/ironic-status: updating + rm -rfv /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages ']' + site_dirs+=("/usr/lib/python3.9/site-packages") + '[' /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib64/python3.9/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages ']' + '[' -d /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.el9.x86_64$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.9/site-packages/ironic-24.1.2.dev27.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.2.dev27.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.2-0.20240905084225.8293efd.el9.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.2.dev27.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.2.dev27.dist-info/RECORD removed '/builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.2.dev27.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.2.dev27.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages/ironic-24.1.2.dev27.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.el9.x86_64/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/etc/sudoers.d + install -p -D -m 440 /builddir/build/SOURCES/ironic-sudoers /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/etc/ironic/rootwrap.d + export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64//usr/lib/python3.9/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.el9.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/etc/ironic + install -p -D -m 640 /builddir/build/SOURCES/ironic-dist.conf /builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2-0.20240905084225.8293efd.el9.x86_64//etc/ironic/dnsmasq-tftp-server.conf + /usr/bin/find-debuginfo -j4 --strict-build-id -m -i --build-id-seed 24.1.2-0.20240905084225.8293efd.el9 --unique-debug-suffix -24.1.2-0.20240905084225.8293efd.el9.x86_64 --unique-debug-src-base openstack-ironic-24.1.2-0.20240905084225.8293efd.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.2.dev27 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.2-0.20240905084225.8293efd.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.SqHkOu + umask 022 + cd /builddir/build/BUILD + cd ironic-24.1.2.dev27 + 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.2-0.20240905084225.8293efd.el9.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib64/python3.9/site-packages:/builddir/build/BUILDROOT/openstack-ironic-24.1.2-0.20240905084225.8293efd.el9.x86_64/usr/lib/python3.9/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-24.1.2.dev27/.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) {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.324865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/cfaa65e2-b085-4c97-81b3-60a3a91fbdcc GOT Response: 204 No Content Openstack-Request-Id: req-7f69af2f-0c06-4300-9e9b-95c7810b96b0 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 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.333554s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1 GOT Response: 204 No Content Openstack-Request-Id: req-7df12307-eaf6-44e8-869d-f4f80dd52366 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.043662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e9806363-20d9-4362-b693-4978600989ee X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.038274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content Openstack-Request-Id: req-f7fb3dba-52e6-4e40-91e6-f5674bb76692 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_node [0.055697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content Openstack-Request-Id: req-99e6921c-734a-4e10-a90e-bf72a2ef155b 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_node_invalid_api_version [0.038807s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.039308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/5c64c563-dcf4-493c-9f0f-460313ba4739/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8b73c3f5-2ee3-466b-ad48-61697c645d86 X-Openstack-Ironic-Api-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 5c64c563-dcf4-493c-9f0f-460313ba4739 was not found\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.031510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/c284752b-96f4-4bf3-b311-98a524d280f8 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.049062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/ba!na!na1 GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} {1} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.503245s] ... 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 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.052481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/27c52abf-5961-4c2a-9504-c203978b62b0/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0e7ef37-7114-45bd-a9fd-c3aeeae5860c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 27c52abf-5961-4c2a-9504-c203978b62b0 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.093299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/5bdd541d-55b1-436b-8a30-df9db0e3b690 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-34889479-63f5-417e-b5c0-d260d7365323 X-Openstack-Ironic-Api-Maximum-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.controllers.test_base.TestBase.test_bad_uri [0.120124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/bad/path WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.093140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-71685e41-740a-4c5c-b02c-24296a14cf89 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}"} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.396848s] ... 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 {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.048832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9f1152ea-f95b-4e24-b82a-a34f62c7b897 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}"} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.051186s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.087885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9eaa922-5b06-491e-b326-ba43b381acf6 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}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.217633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/fe55c16b-b7d6-4e53-94f4-0e62a39ac458 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7b1ad00-3923-4a25-ac42-bf0a8bc22d28 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "fe55c16b-b7d6-4e53-94f4-0e62a39ac458", "created_at": "2024-09-05T08:47:33.339842+00:00", "updated_at": "2024-09-05T08:47:33.390624+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/fe55c16b-b7d6-4e53-94f4-0e62a39ac458", "rel": "self"}, {"href": "http://localhost/allocations/fe55c16b-b7d6-4e53-94f4-0e62a39ac458", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.062972s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.083377s] ... 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.053375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71b0efd5-5c93-4943-9249-de7421979dad 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": "3a016614-7b6d-4b34-b017-131ff58f2c80", "created_at": "2024-09-05T08:47:33.534188+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/3a016614-7b6d-4b34-b017-131ff58f2c80", "rel": "self"}, {"href": "http://localhost/allocations/3a016614-7b6d-4b34-b017-131ff58f2c80", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "7a2c6a00-a128-4c7c-910e-ef3368db23d7", "created_at": "2024-09-05T08:47:33.535165+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/7a2c6a00-a128-4c7c-910e-ef3368db23d7", "rel": "self"}, {"href": "http://localhost/allocations/7a2c6a00-a128-4c7c-910e-ef3368db23d7", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "2b4a1bf5-d866-44a8-a3bb-180a3c4a6eb1", "created_at": "2024-09-05T08:47:33.536054+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/2b4a1bf5-d866-44a8-a3bb-180a3c4a6eb1", "rel": "self"}, {"href": "http://localhost/allocations/2b4a1bf5-d866-44a8-a3bb-180a3c4a6eb1", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "db88c928-5485-4bd8-8b01-1005ca3cec68", "created_at": "2024-09-05T08:47:33.536977+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/db88c928-5485-4bd8-8b01-1005ca3cec68", "rel": "self"}, {"href": "http://localhost/allocations/db88c928-5485-4bd8-8b01-1005ca3cec68", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "7ef5fe52-7a52-4d62-ba74-88608b18ce8a", "created_at": "2024-09-05T08:47:33.537860+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/7ef5fe52-7a52-4d62-ba74-88608b18ce8a", "rel": "self"}, {"href": "http://localhost/allocations/7ef5fe52-7a52-4d62-ba74-88608b18ce8a", "rel": "bookmark"}], "node_uuid": null}]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.078628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/389e6a4e-a9ea-44f9-a3af-826554aa4158 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cdb5af5-cbb6-41b1-bad3-88ffb4385b72 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "389e6a4e-a9ea-44f9-a3af-826554aa4158", "created_at": "2024-09-05T08:47:33.612651+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/389e6a4e-a9ea-44f9-a3af-826554aa4158", "rel": "self"}, {"href": "http://localhost/allocations/389e6a4e-a9ea-44f9-a3af-826554aa4158", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/389e6a4e-a9ea-44f9-a3af-826554aa4158 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ca2dfa1-8bb6-4875-a866-8d39100d67e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "389e6a4e-a9ea-44f9-a3af-826554aa4158", "created_at": "2024-09-05T08:47:33.612651+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/389e6a4e-a9ea-44f9-a3af-826554aa4158", "rel": "self"}, {"href": "http://localhost/allocations/389e6a4e-a9ea-44f9-a3af-826554aa4158", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.270247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0350daa-0402-4be4-9b77-5a990e8e8a15 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-c7dc4fa9-fa0f-4d40-bfdf-2a6d94918437 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-8a7b41dc-7d10-4485-85bd-a50ee1a9fda2 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."} 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 {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.262434s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.038704s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.072205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-941994c3-ae05-47bd-8b4b-ef5a38103639 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_allocation.TestListAllocations.test_allocation_owner_null_field [0.100834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/401f409d-e629-4b39-b7f5-f2c35049a954 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7fda55c6-34ad-470f-b8b2-94058832ab21 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "401f409d-e629-4b39-b7f5-f2c35049a954", "created_at": "2024-09-05T08:47:33.700612+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/401f409d-e629-4b39-b7f5-f2c35049a954", "rel": "self"}, {"href": "http://localhost/allocations/401f409d-e629-4b39-b7f5-f2c35049a954", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.029649s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.032096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2204c28c-c725-4929-a858-c5093567b2ea 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."} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.026894s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.045623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/14e90c2a-631c-4d57-bd09-213cc656ab9d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7fda31f-bf72-41e0-8dbb-8df1f852e41c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "14e90c2a-631c-4d57-bd09-213cc656ab9d", "created_at": "2024-09-05T08:47:33.777443+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/14e90c2a-631c-4d57-bd09-213cc656ab9d", "rel": "self"}, {"href": "http://localhost/allocations/14e90c2a-631c-4d57-bd09-213cc656ab9d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.035245s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.028241s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.075761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/fcfd30f3-0604-4725-becf-e096c9c79984/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.test_base.TestVersion.test_repr [0.030127s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.038257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/3d316c87-c017-437b-ba14-0e9de92719dc/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.test_base.TestVersion.test_repr_with_strings [0.027187s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.513095s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/b735ac6a-5583-42ff-8d7b-1d183633b87f 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-59d02aa9-5b72-44a3-a230-7d6e3d02f67e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b735ac6a-5583-42ff-8d7b-1d183633b87f", "created_at": "2024-09-05T08:47:33.903768+00:00", "updated_at": "2024-09-05T08:47:33.921993+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/b735ac6a-5583-42ff-8d7b-1d183633b87f", "rel": "self"}, {"href": "http://localhost/allocations/b735ac6a-5583-42ff-8d7b-1d183633b87f", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/b735ac6a-5583-42ff-8d7b-1d183633b87f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7aa458c1-57f8-4a9c-acd3-5c084fd3ba45 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b735ac6a-5583-42ff-8d7b-1d183633b87f", "created_at": "2024-09-05T08:47:33.903768+00:00", "updated_at": "2024-09-05T08:47:33.921993+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/b735ac6a-5583-42ff-8d7b-1d183633b87f", "rel": "self"}, {"href": "http://localhost/allocations/b735ac6a-5583-42ff-8d7b-1d183633b87f", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.037995s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/6ec17338-9b2e-4d88-bd37-0ff841ee7977 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3489783c-949c-4869-af6a-b54ef8fb0898 X-Openstack-Ironic-Api-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.TestListAllocations.test_collection_links [0.092749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4641bfa6-e8a9-4ee2-89cd-11369cf0ed0f 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": "5db07ccd-a6d4-4593-b7ec-d6c9995f5a9f", "created_at": "2024-09-05T08:47:33.980173+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/5db07ccd-a6d4-4593-b7ec-d6c9995f5a9f", "rel": "self"}, {"href": "http://localhost/allocations/5db07ccd-a6d4-4593-b7ec-d6c9995f5a9f", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "f4def43a-570e-40df-8815-cc465bff5aa6", "created_at": "2024-09-05T08:47:33.981142+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/f4def43a-570e-40df-8815-cc465bff5aa6", "rel": "self"}, {"href": "http://localhost/allocations/f4def43a-570e-40df-8815-cc465bff5aa6", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "3cfc3b3f-8712-4338-82a5-fb972df1795b", "created_at": "2024-09-05T08:47:33.982044+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/3cfc3b3f-8712-4338-82a5-fb972df1795b", "rel": "self"}, {"href": "http://localhost/allocations/3cfc3b3f-8712-4338-82a5-fb972df1795b", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=3cfc3b3f-8712-4338-82a5-fb972df1795b"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.101574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-468d3511-d353-4f5d-80ca-c54c1b901223 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-14c9d264-c48b-41f2-b1bc-ac0a2dd8c450 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}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.040683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/fb0fd26a-49f4-4795-9f7c-5cc0e28ba85e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dab90a74-86ca-490b-91cf-fcf8389ab5c9 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 fb0fd26a-49f4-4795-9f7c-5cc0e28ba85e could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.118054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc893a12-ea6b-4310-a38c-2889dfebb6c3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "created_at": "2024-09-05T08:47:34.000514+00:00", "updated_at": "2024-09-05T08:47:34.038681+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/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "self"}, {"href": "http://localhost/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e097c445-0cc8-4f7a-824f-ae85c56eb290 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "created_at": "2024-09-05T08:47:34.000514+00:00", "updated_at": "2024-09-05T08:47:34.038681+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/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "self"}, {"href": "http://localhost/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "bookmark"}], "node_uuid": null} PATCH /v1/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99662311-0759-4ab5-8353-f2b277e03354 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "created_at": "2024-09-05T08:47:34.000514+00:00", "updated_at": "2024-09-05T08:47:34.073630+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "self"}, {"href": "http://localhost/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b34f006-726e-412d-b1fd-1ecf5612c6e3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "created_at": "2024-09-05T08:47:34.000514+00:00", "updated_at": "2024-09-05T08:47:34.073630+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "self"}, {"href": "http://localhost/allocations/e5d1189e-c5ea-482e-afae-5c6fd8a8a187", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.094812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b62affd-0a2e-4701-ab8d-0d99e7f45575 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": "aac37f36-c547-4c48-8e5c-72d632aac069", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/aac37f36-c547-4c48-8e5c-72d632aac069", "rel": "self"}, {"href": "http://localhost/allocations/aac37f36-c547-4c48-8e5c-72d632aac069", "rel": "bookmark"}]}, {"uuid": "2ed9becb-e084-4995-863a-496b0cb4f5a0", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/2ed9becb-e084-4995-863a-496b0cb4f5a0", "rel": "self"}, {"href": "http://localhost/allocations/2ed9becb-e084-4995-863a-496b0cb4f5a0", "rel": "bookmark"}]}, {"uuid": "85aa26f3-eef4-4401-8499-b471f4d3a7c9", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/85aa26f3-eef4-4401-8499-b471f4d3a7c9", "rel": "self"}, {"href": "http://localhost/allocations/85aa26f3-eef4-4401-8499-b471f4d3a7c9", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=85aa26f3-eef4-4401-8499-b471f4d3a7c9"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.061351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e9bcc20-01fa-416a-afc8-59f9b0d1e8fe 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}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.040605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-781c7760-ff38-4b10-9997-6105b9b9ec10 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_allocation.TestListAllocations.test_collection_links_default_limit [0.073849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5801723d-19bf-4b75-bd3b-7269a7b64e89 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": "86c48ec7-b67e-4c4a-92bd-b4e8cab20607", "created_at": "2024-09-05T08:47:34.148802+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/86c48ec7-b67e-4c4a-92bd-b4e8cab20607", "rel": "self"}, {"href": "http://localhost/allocations/86c48ec7-b67e-4c4a-92bd-b4e8cab20607", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "9c767f06-089f-450e-a511-8242fd9d3e98", "created_at": "2024-09-05T08:47:34.149730+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/9c767f06-089f-450e-a511-8242fd9d3e98", "rel": "self"}, {"href": "http://localhost/allocations/9c767f06-089f-450e-a511-8242fd9d3e98", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "f63a0627-808c-45ac-b040-299942e0225c", "created_at": "2024-09-05T08:47:34.160637+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/f63a0627-808c-45ac-b040-299942e0225c", "rel": "self"}, {"href": "http://localhost/allocations/f63a0627-808c-45ac-b040-299942e0225c", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=f63a0627-808c-45ac-b040-299942e0225c"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.098419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/06c83148-00c3-46d3-a62c-ab45a1df778b WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5d6bd33e-325e-4574-8dcc-b4d9cd47e6ee X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.417014s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c60c06e0-11c9-41a0-86d2-d51bc7934bd4 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."} {2} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next [0.036663s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.040946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a98e751f-29ea-44b8-9b0c-d82a0250209d 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_allocation.TestPatch.test_remove_singular [0.054271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/1c871e42-5e9d-4e0c-9f55-3dc11c090acd WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07bd2527-7f0c-4930-99d4-72f3f0930e4a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1c871e42-5e9d-4e0c-9f55-3dc11c090acd", "created_at": "2024-09-05T08:47:34.214877+00:00", "updated_at": "2024-09-05T08:47:34.232796+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1c871e42-5e9d-4e0c-9f55-3dc11c090acd", "rel": "self"}, {"href": "http://localhost/allocations/1c871e42-5e9d-4e0c-9f55-3dc11c090acd", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/1c871e42-5e9d-4e0c-9f55-3dc11c090acd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3eebeecc-0161-4e62-bb26-1a0bfad02ca2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1c871e42-5e9d-4e0c-9f55-3dc11c090acd", "created_at": "2024-09-05T08:47:34.214877+00:00", "updated_at": "2024-09-05T08:47:34.232796+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/1c871e42-5e9d-4e0c-9f55-3dc11c090acd", "rel": "self"}, {"href": "http://localhost/allocations/1c871e42-5e9d-4e0c-9f55-3dc11c090acd", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.064172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-941f0c58-c901-4446-83ec-a858fadb3f13 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_collection.TestCollection.test_has_next [0.036651s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links [0.024535s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.034402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/0437d9bf-cd71-4314-b167-dcf1974f1a45 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa0559ea-492e-456e-8c2d-38e3e860ad07 X-Openstack-Ironic-Api-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_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.077022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field [0.034884s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.062944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b617717a-9eea-49e7-a8b2-fbb9ffce42e0 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": "2fbc8232-f938-4e91-b6d5-9909f0283ce7", "created_at": "2024-09-05T08:47:34.279100+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/2fbc8232-f938-4e91-b6d5-9909f0283ce7", "rel": "self"}, {"href": "http://localhost/allocations/2fbc8232-f938-4e91-b6d5-9909f0283ce7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "dc45f7a7-affe-4c58-87cc-89e3e8d84024", "created_at": "2024-09-05T08:47:34.280119+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/dc45f7a7-affe-4c58-87cc-89e3e8d84024", "rel": "self"}, {"href": "http://localhost/allocations/dc45f7a7-affe-4c58-87cc-89e3e8d84024", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "dfaf2717-540b-408b-a83f-180325b2f007", "created_at": "2024-09-05T08:47:34.280996+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/dfaf2717-540b-408b-a83f-180325b2f007", "rel": "self"}, {"href": "http://localhost/allocations/dfaf2717-540b-408b-a83f-180325b2f007", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.054470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/dee7528f-3bb9-4993-a94d-66ad40d57262 WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7893ad84-a618-4c43-b3f0-403fc887956f X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type [0.032189s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.038990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.029406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.041247s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.077542s] ... 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-936ae2b1-45f3-4830-80d5-2d6ce8afb6ef 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": "f8492ae6-c71f-4f91-823f-059eb441c179", "created_at": "2024-09-05T08:47:34.367323+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/f8492ae6-c71f-4f91-823f-059eb441c179", "rel": "self"}, {"href": "http://localhost/allocations/f8492ae6-c71f-4f91-823f-059eb441c179", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.069620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/6f0d722b-98b8-4847-959e-801c629b6235 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75467185-d832-444d-b28a-0122ed905153 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6f0d722b-98b8-4847-959e-801c629b6235", "created_at": "2024-09-05T08:47:34.372310+00:00", "updated_at": "2024-09-05T08:47:34.393180+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/6f0d722b-98b8-4847-959e-801c629b6235", "rel": "self"}, {"href": "http://localhost/allocations/6f0d722b-98b8-4847-959e-801c629b6235", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/6f0d722b-98b8-4847-959e-801c629b6235 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d79c97d0-ae21-4722-9b17-9b51133d223c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6f0d722b-98b8-4847-959e-801c629b6235", "created_at": "2024-09-05T08:47:34.372310+00:00", "updated_at": "2024-09-05T08:47:34.393180+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/6f0d722b-98b8-4847-959e-801c629b6235", "rel": "self"}, {"href": "http://localhost/allocations/6f0d722b-98b8-4847-959e-801c629b6235", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.035178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.042151s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.042768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-14d30ac9-b2a5-471b-ace9-8ca47f4f8bf5 X-Openstack-Ironic-Api-Maximum-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.040664s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.050893s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.033052s] ... 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_allocation.TestPatch.test_replace_name_with_none [0.087108s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/40274c70-d1e8-4439-9cd5-bf598ad977d6 WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dde6de68-79c5-4ca2-b125-eea5f456732f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "40274c70-d1e8-4439-9cd5-bf598ad977d6", "created_at": "2024-09-05T08:47:34.437523+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/40274c70-d1e8-4439-9cd5-bf598ad977d6", "rel": "self"}, {"href": "http://localhost/allocations/40274c70-d1e8-4439-9cd5-bf598ad977d6", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/40274c70-d1e8-4439-9cd5-bf598ad977d6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15184d2f-d5c9-43a8-998f-2f1aadecdd4c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "40274c70-d1e8-4439-9cd5-bf598ad977d6", "created_at": "2024-09-05T08:47:34.437523+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/40274c70-d1e8-4439-9cd5-bf598ad977d6", "rel": "self"}, {"href": "http://localhost/allocations/40274c70-d1e8-4439-9cd5-bf598ad977d6", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.065086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e001b149-90a0-4bd4-a183-6e9336f672d1 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": "d5a8ffdf-39f2-4020-8c4f-88c73e2a8df8", "created_at": "2024-09-05T08:47:34.474686+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/d5a8ffdf-39f2-4020-8c4f-88c73e2a8df8", "rel": "self"}, {"href": "http://localhost/allocations/d5a8ffdf-39f2-4020-8c4f-88c73e2a8df8", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "a2bf2439-43e0-4460-9b86-426b8c6c4432", "created_at": "2024-09-05T08:47:34.475778+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/a2bf2439-43e0-4460-9b86-426b8c6c4432", "rel": "self"}, {"href": "http://localhost/allocations/a2bf2439-43e0-4460-9b86-426b8c6c4432", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "ce752b26-0293-43de-957f-db28f5a1c346", "created_at": "2024-09-05T08:47:34.476666+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/ce752b26-0293-43de-957f-db28f5a1c346", "rel": "self"}, {"href": "http://localhost/allocations/ce752b26-0293-43de-957f-db28f5a1c346", "rel": "bookmark"}], "node_uuid": null}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.047032s] ... 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_allocation.TestPatch.test_replace_singular [0.068330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/1d76d2ee-ffc3-45d8-b25e-b5c4ec998087 WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cdd1b85d-bd13-4932-ab22-dec7fc3c67cb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1d76d2ee-ffc3-45d8-b25e-b5c4ec998087", "created_at": "2024-09-05T08:47:34.528134+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/1d76d2ee-ffc3-45d8-b25e-b5c4ec998087", "rel": "self"}, {"href": "http://localhost/allocations/1d76d2ee-ffc3-45d8-b25e-b5c4ec998087", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/1d76d2ee-ffc3-45d8-b25e-b5c4ec998087 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4bede608-0f4f-4ce0-9f22-8294ab2191ff X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1d76d2ee-ffc3-45d8-b25e-b5c4ec998087", "created_at": "2024-09-05T08:47:34.528134+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/1d76d2ee-ffc3-45d8-b25e-b5c4ec998087", "rel": "self"}, {"href": "http://localhost/allocations/1d76d2ee-ffc3-45d8-b25e-b5c4ec998087", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.063061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-769a769d-3aff-4fc8-858a-243f8b311c70 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.094270s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4575c87c-2b65-40be-8d98-14815517fb19 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.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.041713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.026787s] ... 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_allocation.TestPatch.test_update_error [0.054175s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/41791cbc-57e4-43ba-a8c9-f9a8c07d3d7c WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-423a95fa-a4a6-43ff-a101-e79f2eccfdfc X-Openstack-Ironic-Api-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_get_all_by_owner_not_allowed_mismatch [0.052424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0aaf5003-5eb6-4f9c-9eef-50ab44fa149e 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.025608s] ... 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_allocation.TestPatch.test_update_not_allowed [0.038837s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/422dc5d6-8ee0-4651-a503-9146411f62ff WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-2ad59a4e-7a2a-459f-bfb3-0bf2d750c86d 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.037824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.095558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content Openstack-Request-Id: req-d8545668-485e-417a-93c7-3cf2dd3e55ae 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_allocation.TestPatch.test_update_not_found [0.041264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/82f67fce-802c-4ecb-91bf-6254ea73ebad WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4d15f3db-cce4-47ea-9605-de3db69ec7ba X-Openstack-Ironic-Api-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 82f67fce-802c-4ecb-91bf-6254ea73ebad could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.077469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1a3fb84-222f-4a9d-aacd-f2d97fe6ec9b 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": "dd5bfc44-b9ef-4b28-96e2-7a72c6a3e1b5", "created_at": "2024-09-05T08:47:34.665978+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/dd5bfc44-b9ef-4b28-96e2-7a72c6a3e1b5", "rel": "self"}, {"href": "http://localhost/allocations/dd5bfc44-b9ef-4b28-96e2-7a72c6a3e1b5", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b762561d-aa26-4e49-bc84-0ba6198f74f8", "created_at": "2024-09-05T08:47:34.667573+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/b762561d-aa26-4e49-bc84-0ba6198f74f8", "rel": "self"}, {"href": "http://localhost/allocations/b762561d-aa26-4e49-bc84-0ba6198f74f8", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "980a64bd-4b8f-4e50-95d3-22e253bef0e0", "created_at": "2024-09-05T08:47:34.668463+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/980a64bd-4b8f-4e50-95d3-22e253bef0e0", "rel": "self"}, {"href": "http://localhost/allocations/980a64bd-4b8f-4e50-95d3-22e253bef0e0", "rel": "bookmark"}], "node_uuid": null}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.055313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.1 GOT Response: 204 No Content Openstack-Request-Id: req-44aa21c2-a04b-4f63-8b3e-8cdda3edeb7d 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_allocation.TestPatch.test_update_owner_not_acceptable [0.036570s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/464c3e91-06cf-4f94-879c-1a48a9d73655 WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5617e8b3-8ac4-4153-b279-2ee6851b488e X-Openstack-Ironic-Api-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_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.064636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test_check__check_steps_wrappers [0.024283s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.058753s] ... 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-5eced35e-c3ef-492a-af3a-c875aa650fa3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0008e2aa-6b60-4378-83d1-44a66f156356", "created_at": "2024-09-05T08:47:34.740515+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/0008e2aa-6b60-4378-83d1-44a66f156356", "rel": "self"}, {"href": "http://localhost/allocations/0008e2aa-6b60-4378-83d1-44a66f156356", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.055340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a6fe31a1-35b4-4b06-bccc-50fe6cc7176c 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.044649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/339dc4ec-f1a9-4283-922f-175083f435db 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_node.TestDelete.test_delete_node_by_name_with_json [0.054503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.json GOT Response: 204 No Content Openstack-Request-Id: req-7504942c-7c58-457a-9bfc-41caffafba39 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.TestNodeParentNodePatch.test_node_add_parent [0.116654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cc1dd3da-3d7e-4870-97e9-b518b56e2b03 WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2907992-c03f-47ee-969f-ad9d0ed663e0 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": "2024-09-05T08:47:34.801160+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.037871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-25f72c85-e96d-4bb1-91ae-e1deab150023 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_allocation.TestPost.test_backfill [0.151788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '589ffd9b-9cf4-4787-9784-e278fcde1e37', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/589ffd9b-9cf4-4787-9784-e278fcde1e37 Openstack-Request-Id: req-790bd9a5-436d-42db-b828-852836cbe1bc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "589ffd9b-9cf4-4787-9784-e278fcde1e37", "created_at": "2024-09-05T08:47:34.853824+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/589ffd9b-9cf4-4787-9784-e278fcde1e37", "rel": "self"}, {"href": "http://localhost/allocations/589ffd9b-9cf4-4787-9784-e278fcde1e37", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/589ffd9b-9cf4-4787-9784-e278fcde1e37 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac890ea2-c255-4333-aab8-9f9216bc86b6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "589ffd9b-9cf4-4787-9784-e278fcde1e37", "created_at": "2024-09-05T08:47:34.853824+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/589ffd9b-9cf4-4787-9784-e278fcde1e37", "rel": "self"}, {"href": "http://localhost/allocations/589ffd9b-9cf4-4787-9784-e278fcde1e37", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.090667s] ... 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_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.060372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/79273134-0d99-4350-8a8f-5fe37c31dea5 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-28e50c5a-cdca-4438-8a81-9f39852531dc 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.058442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-41004227-acae-4226-b79d-2e126a0f4873 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_allocation.TestPost.test_backfill_copy_instance_uuid [0.092732s] ... 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/b346b288-f2b9-4109-9a2b-50d659c0910b Openstack-Request-Id: req-31165f49-f52c-4224-a82c-dadd8958f064 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b346b288-f2b9-4109-9a2b-50d659c0910b", "created_at": "2024-09-05T08:47:34.956220+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/b346b288-f2b9-4109-9a2b-50d659c0910b", "rel": "self"}, {"href": "http://localhost/allocations/b346b288-f2b9-4109-9a2b-50d659c0910b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/b346b288-f2b9-4109-9a2b-50d659c0910b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0423460-5244-4b36-b886-e08b808b9912 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b346b288-f2b9-4109-9a2b-50d659c0910b", "created_at": "2024-09-05T08:47:34.956220+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/b346b288-f2b9-4109-9a2b-50d659c0910b", "rel": "self"}, {"href": "http://localhost/allocations/b346b288-f2b9-4109-9a2b-50d659c0910b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.046486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d1c4345-7675-42f9-b951-8e4056d0d0a0 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_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.094390s] ... 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-de702d07-42eb-4dac-982a-6dfebb0f717c 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/fcfe0eec-ce15-4e55-9b83-988dcb205c55", "rel": "self"}, {"href": "http://localhost/allocations/fcfe0eec-ce15-4e55-9b83-988dcb205c55", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.053278s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3238b60f-9680-4585-8007-6d2241919fa8 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}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.095516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '64c0fa29-f716-429b-afb1-64c3bbb37e6b', 'owner': None, 'node': 'b6c8481b-d8fb-40b3-aaa2-3eea6fcd472f'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf22445f-3fea-404e-9bf7-e76227618eb5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node b6c8481b-d8fb-40b3-aaa2-3eea6fcd472f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.071545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21dcb010-c5e2-4402-beb4-4499669c3fb5 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": "cef69e7f-5681-4023-b087-8380da7f3879", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/cef69e7f-5681-4023-b087-8380da7f3879", "rel": "self"}, {"href": "http://localhost/allocations/cef69e7f-5681-4023-b087-8380da7f3879", "rel": "bookmark"}]}, {"uuid": "acba3aa3-0059-4387-930f-9279e0c4775f", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/acba3aa3-0059-4387-930f-9279e0c4775f", "rel": "self"}, {"href": "http://localhost/allocations/acba3aa3-0059-4387-930f-9279e0c4775f", "rel": "bookmark"}]}, {"uuid": "8e85dc44-0024-4f32-b737-529a549a3166", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/8e85dc44-0024-4f32-b737-529a549a3166", "rel": "self"}, {"href": "http://localhost/allocations/8e85dc44-0024-4f32-b737-529a549a3166", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.137893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/180b3864-0dda-43a7-b7fd-a6abfc4425e6 WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-06fb8849-5309-41b4-8396-d955dfae289b 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: (,)]\\n(Background on this error at: https://sqlalche.me/e/14/rvf5)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.050495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-de337a12-b09e-43ea-a844-c83f81105c9e 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_allocation.TestPost.test_backfill_not_allowed [0.045920s] ... 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-32111a8e-f65e-4655-bd9c-6f45afb68e81 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.073738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8056521-f0e9-4f4b-8b43-a9c855051bef 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/b38f40e3-7b3b-4718-b85b-aab2b27d0c61", "rel": "self"}, {"href": "http://localhost/allocations/b38f40e3-7b3b-4718-b85b-aab2b27d0c61", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/405161c9-4eb4-408d-9560-6e6f1d29cb9f", "rel": "self"}, {"href": "http://localhost/allocations/405161c9-4eb4-408d-9560-6e6f1d29cb9f", "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=405161c9-4eb4-408d-9560-6e6f1d29cb9f"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.059411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8f4b76b9-68d2-488d-b576-21484cdffcc8', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8f4b76b9-68d2-488d-b576-21484cdffcc8 Openstack-Request-Id: req-bb4df8db-a8d8-4bde-a993-131b786684cd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "8f4b76b9-68d2-488d-b576-21484cdffcc8", "created_at": "2024-09-05T08:47:35.163699+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/8f4b76b9-68d2-488d-b576-21484cdffcc8", "rel": "self"}, {"href": "http://localhost/allocations/8f4b76b9-68d2-488d-b576-21484cdffcc8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/8f4b76b9-68d2-488d-b576-21484cdffcc8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79d5a870-327c-4dcf-b31a-e46997848ccb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "8f4b76b9-68d2-488d-b576-21484cdffcc8", "created_at": "2024-09-05T08:47:35.163699+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/8f4b76b9-68d2-488d-b576-21484cdffcc8", "rel": "self"}, {"href": "http://localhost/allocations/8f4b76b9-68d2-488d-b576-21484cdffcc8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_remove_parent [0.127652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/36453184-9e31-43a5-aaa9-41e052fb8ab2 WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d8a1284-2965-4bb8-a52b-74f569939ea8 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": "2024-09-05T08:47:35.113783+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.131752s] ... 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-2be06cc6-0470-4ec3-b8d9-4f656c12a6a8 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_allocation.TestPost.test_backfill_without_resource_class [0.053015s] ... 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/bac94917-d9bf-4127-8ebb-a4dcf8e67e45 Openstack-Request-Id: req-c1fe500b-7f2b-4139-86e6-f7df2d221b52 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "bac94917-d9bf-4127-8ebb-a4dcf8e67e45", "created_at": "2024-09-05T08:47:35.221389+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/bac94917-d9bf-4127-8ebb-a4dcf8e67e45", "rel": "self"}, {"href": "http://localhost/allocations/bac94917-d9bf-4127-8ebb-a4dcf8e67e45", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/bac94917-d9bf-4127-8ebb-a4dcf8e67e45 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63676fce-cb9a-4740-bfc1-9869a50c6c01 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "bac94917-d9bf-4127-8ebb-a4dcf8e67e45", "created_at": "2024-09-05T08:47:35.221389+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/bac94917-d9bf-4127-8ebb-a4dcf8e67e45", "rel": "self"}, {"href": "http://localhost/allocations/bac94917-d9bf-4127-8ebb-a4dcf8e67e45", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.083737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e0887bc3-f51b-48a3-b58d-bd3f0582929a?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b8ddf5ab-b220-4d58-aa5a-2edbd6f98fd1 X-Openstack-Ironic-Api-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_allocation.TestPost.test_create_allocation [0.042510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'caa6fe29-89ab-4fa6-bacb-fdfddf050eea', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/caa6fe29-89ab-4fa6-bacb-fdfddf050eea Openstack-Request-Id: req-f571581e-49e2-46a8-b27d-1b3aec8b5486 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "caa6fe29-89ab-4fa6-bacb-fdfddf050eea", "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/caa6fe29-89ab-4fa6-bacb-fdfddf050eea", "rel": "self"}, {"href": "http://localhost/allocations/caa6fe29-89ab-4fa6-bacb-fdfddf050eea", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/caa6fe29-89ab-4fa6-bacb-fdfddf050eea WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-480f905a-e6e4-44ba-96c6-0ccdfbc513a0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "caa6fe29-89ab-4fa6-bacb-fdfddf050eea", "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/caa6fe29-89ab-4fa6-bacb-fdfddf050eea", "rel": "self"}, {"href": "http://localhost/allocations/caa6fe29-89ab-4fa6-bacb-fdfddf050eea", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.037689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d767f1ea-5c0f-4042-815f-b85e091f5ff7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a719ce69-4cd9-435e-9ed2-d541d0adc2ea X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "d767f1ea-5c0f-4042-815f-b85e091f5ff7", "created_at": "2024-09-05T08:47:35.279953+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/d767f1ea-5c0f-4042-815f-b85e091f5ff7", "rel": "self"}, {"href": "http://localhost/allocations/d767f1ea-5c0f-4042-815f-b85e091f5ff7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.080932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebf5d8c2-31df-4c21-882f-284afb2c6a83 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": "6d907898-eb7f-402c-8809-db291c337b2a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6d907898-eb7f-402c-8809-db291c337b2a", "rel": "self"}, {"href": "http://localhost/nodes/6d907898-eb7f-402c-8809-db291c337b2a", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.104579s] ... 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-97a35310-02a3-4b1e-a0e6-7967c907a8c4 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_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.061926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '759bf366-64e0-4521-aec1-2b404acde421', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c854f497-9fe9-4b33-9f1e-32fad49219e9 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.055601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e4f1da59-8c80-4c84-9176-b01e81701d92?fields=resource_class,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4d33c1e-993f-4ea4-8c81-87de700005a6 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/e4f1da59-8c80-4c84-9176-b01e81701d92", "rel": "self"}, {"href": "http://localhost/allocations/e4f1da59-8c80-4c84-9176-b01e81701d92", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.042999s] ... 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-acd2d24f-85ee-4ab4-9963-17b1f8bd4252 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.087173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fae0e924-54f4-419f-90d4-a2a174b4d428 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": "d3dce2fa-0388-45da-af17-a23ef69cfba8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d3dce2fa-0388-45da-af17-a23ef69cfba8", "rel": "self"}, {"href": "http://localhost/nodes/d3dce2fa-0388-45da-af17-a23ef69cfba8", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.051355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '41fbbefe-31a0-47ca-a95f-1b7ad6d29956', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6f4df8b-d293-4e5a-ab5f-52adec54b509 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.044437s] ... 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-886f2dae-fb50-4d5f-90b5-c3f260966a61 X-Openstack-Ironic-Api-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_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.050353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0296a27c-6777-4df9-a4cc-65d7284097a9', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0296a27c-6777-4df9-a4cc-65d7284097a9 Openstack-Request-Id: req-ed79e498-19a1-4276-9293-33d253ef23a8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0296a27c-6777-4df9-a4cc-65d7284097a9", "created_at": "2024-09-05T08:47:35.432997+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/0296a27c-6777-4df9-a4cc-65d7284097a9", "rel": "self"}, {"href": "http://localhost/allocations/0296a27c-6777-4df9-a4cc-65d7284097a9", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/0296a27c-6777-4df9-a4cc-65d7284097a9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb817633-bfe6-4e0e-9598-d06413856d65 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0296a27c-6777-4df9-a4cc-65d7284097a9", "created_at": "2024-09-05T08:47:35.432997+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/0296a27c-6777-4df9-a4cc-65d7284097a9", "rel": "self"}, {"href": "http://localhost/allocations/0296a27c-6777-4df9-a4cc-65d7284097a9", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.088726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/9a5dd767-8924-4e2e-ba01-44e34450574e 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_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.042553s] ... 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-e8e22a92-da19-4205-8ce7-314c60738137 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.099254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54f530c7-e17e-4644-bbd8-a36b9d097cce 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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.049363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '296399a0-bea4-4a5a-84ab-376874f6f6e6', 'owner': None} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a61815bb-17bc-4a65-8be7-67794f96dd80 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.059043s] ... 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-9dfbf97a-131a-46b2-80a8-73b62ac98d32 X-Openstack-Ironic-Api-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_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.086234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/ba!na!na! WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.067515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3d49a25b-4362-454f-8a7e-84ebb7b081ec 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_allocation.TestPost.test_create_allocation_generate_uuid [0.066663s] ... 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/09882caa-7b80-49c8-9273-8d2be260b7f1 Openstack-Request-Id: req-83e9c9eb-ccb2-47ff-95f0-a775646415c7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "09882caa-7b80-49c8-9273-8d2be260b7f1", "created_at": "2024-09-05T08:47:35.533565+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/09882caa-7b80-49c8-9273-8d2be260b7f1", "rel": "self"}, {"href": "http://localhost/allocations/09882caa-7b80-49c8-9273-8d2be260b7f1", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/09882caa-7b80-49c8-9273-8d2be260b7f1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5680f3e3-f14c-4036-96cd-78996f67e507 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "09882caa-7b80-49c8-9273-8d2be260b7f1", "created_at": "2024-09-05T08:47:35.533565+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/09882caa-7b80-49c8-9273-8d2be260b7f1", "rel": "self"}, {"href": "http://localhost/allocations/09882caa-7b80-49c8-9273-8d2be260b7f1", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.039836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0e32b8d9-81c8-4be5-8b49-fca70e024417 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.063648s] ... 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-994bc917-7476-4d48-aa97-6f84e509b5fe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["e99a1663-83fe-479f-92c5-3b9cd3cd0b6e"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.043894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cc073d44-93fa-44f6-becd-03f53ca73f48', 'owner': None} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.084229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/664e68ed-d09b-404a-b288-62f782ef89a9.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4fca739e-e9f0-402b-9122-5cd3e4362051 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "664e68ed-d09b-404a-b288-62f782ef89a9", "created_at": "2024-09-05T08:47:35.606437+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/664e68ed-d09b-404a-b288-62f782ef89a9", "rel": "self"}, {"href": "http://localhost/allocations/664e68ed-d09b-404a-b288-62f782ef89a9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.044962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '94586d2b-3d24-4fd8-9f0c-1ce799846560', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-09a00814-ce62-476e-ac40-135c09aec740 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_sharded [0.055910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa6842b4-e321-48d5-9609-ecb7a8094acc 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-fa814a62-413c-4129-a190-1e8d506505e4 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": "0b4be4c3-2004-4de2-b4d7-ea005f8215e2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0b4be4c3-2004-4de2-b4d7-ea005f8215e2", "rel": "self"}, {"href": "http://localhost/nodes/0b4be4c3-2004-4de2-b4d7-ea005f8215e2", "rel": "bookmark"}]}, {"uuid": "3e42b684-6af4-4b35-a63b-954270632b64", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/3e42b684-6af4-4b35-a63b-954270632b64", "rel": "self"}, {"href": "http://localhost/nodes/3e42b684-6af4-4b35-a63b-954270632b64", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.102977s] ... 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-85d6a95c-9e78-44fb-a560-662459a866aa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["594c9885-26a6-4a44-8b60-d4cb6feea1ef", "1a909970-eaa4-494b-85cd-7a63d4a8fbb8"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.081364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/f35dc2da-c9c3-4773-801c-e229c16ae68c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19e3502d-6f8e-4b44-a97b-222a1ab8113c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f35dc2da-c9c3-4773-801c-e229c16ae68c", "created_at": "2024-09-05T08:47:35.679235+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/f35dc2da-c9c3-4773-801c-e229c16ae68c", "rel": "self"}, {"href": "http://localhost/allocations/f35dc2da-c9c3-4773-801c-e229c16ae68c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.068011s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': 'caff3a08-8b11-4592-bb2e-a0403ddd6c40', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-138a35f4-2cb4-480a-8270-bdf4341c9c8d X-Openstack-Ironic-Api-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_one_with_suffix [0.046059s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/684beda4-8140-45df-b3e9-253973fbed15 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07b98192-7dcb-4901-8a6f-7c9debd28618 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "684beda4-8140-45df-b3e9-253973fbed15", "created_at": "2024-09-05T08:47:35.740186+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/684beda4-8140-45df-b3e9-253973fbed15", "rel": "self"}, {"href": "http://localhost/allocations/684beda4-8140-45df-b3e9-253973fbed15", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.050165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8dbc33f-14b7-4b6b-87e6-86613709dd65 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.TestNodeShardGets.test_filtering_by_single_shard_detail [0.103019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28c13a11-ac36-46d0-bc05-90abc137a4d0 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": "2024-09-05T08:47:35.725089+00:00", "updated_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_allocation.TestPost.test_create_allocation_name_invalid [0.081887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '7e4134c7-b0e8-4faa-baaf-720e40bdcf85', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8e40934-8062-447f-8f01-b9786e813895 X-Openstack-Ironic-Api-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_owner_field [0.076072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/160ee8f9-8fe8-42f8-a14d-b5b1107e2dda?fields=owner WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28a62f64-de9b-48a7-88ec-c9b5d54d8cbc 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/160ee8f9-8fe8-42f8-a14d-b5b1107e2dda", "rel": "self"}, {"href": "http://localhost/allocations/160ee8f9-8fe8-42f8-a14d-b5b1107e2dda", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.115527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23d3462c-b314-4552-9646-d5364fa06ba9 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": "2024-09-05T08:47:35.832997+00:00", "updated_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_allocation.TestPost.test_create_allocation_name_ok [0.092511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fd059dbf-859d-40b1-9eb3-c6fa20d5a614', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/fd059dbf-859d-40b1-9eb3-c6fa20d5a614 Openstack-Request-Id: req-d04c78c9-b69a-4bd3-b4de-a26cc5b70cdd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "fd059dbf-859d-40b1-9eb3-c6fa20d5a614", "created_at": "2024-09-05T08:47:35.889424+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/fd059dbf-859d-40b1-9eb3-c6fa20d5a614", "rel": "self"}, {"href": "http://localhost/allocations/fd059dbf-859d-40b1-9eb3-c6fa20d5a614", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/fd059dbf-859d-40b1-9eb3-c6fa20d5a614 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d271823-3fb0-4b1a-bc5d-6cea610a8817 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "fd059dbf-859d-40b1-9eb3-c6fa20d5a614", "created_at": "2024-09-05T08:47:35.889424+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/fd059dbf-859d-40b1-9eb3-c6fa20d5a614", "rel": "self"}, {"href": "http://localhost/allocations/fd059dbf-859d-40b1-9eb3-c6fa20d5a614", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.138698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=2f4b9876-a78d-4204-af7e-4e6f022b7d9e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-490b7973-3fdb-4b0c-8ae1-cdd24b809245 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.088114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e9678046-217e-458c-852e-a1fca2869f57 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e40aacc-1729-42ad-aaa4-0bf79de526d0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e9678046-217e-458c-852e-a1fca2869f57", "created_at": "2024-09-05T08:47:35.884792+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/e9678046-217e-458c-852e-a1fca2869f57", "rel": "self"}, {"href": "http://localhost/allocations/e9678046-217e-458c-852e-a1fca2869f57", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/e9678046-217e-458c-852e-a1fca2869f57 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a410e4a-62dc-4e39-8fb0-011b8543e256 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e9678046-217e-458c-852e-a1fca2869f57", "created_at": "2024-09-05T08:47:35.884792+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/e9678046-217e-458c-852e-a1fca2869f57", "rel": "self"}, {"href": "http://localhost/allocations/e9678046-217e-458c-852e-a1fca2869f57", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /allocations/e9678046-217e-458c-852e-a1fca2869f57 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f17c6ac-cf97-4b60-a39d-c90903968076 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e9678046-217e-458c-852e-a1fca2869f57", "created_at": "2024-09-05T08:47:35.884792+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/e9678046-217e-458c-852e-a1fca2869f57", "rel": "self"}, {"href": "http://localhost/allocations/e9678046-217e-458c-852e-a1fca2869f57", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.047244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '8e623bac-6037-48fd-ae08-3cbc66c0aa91', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8415ee43-dff5-4ded-9bc3-21be6a22d752 X-Openstack-Ironic-Api-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_node.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.084566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa56def1-5dc9-499d-aa4e-63b47342593e 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": "2024-09-05T08:47:35.928075+00:00", "updated_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_allocation.TestListAllocations.test_many [0.070370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2037cdd-eed3-4ef9-9306-f2346069fd3a 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": "2c4d7561-2f0f-41a2-8ebf-084cc328a67b", "created_at": "2024-09-05T08:47:35.954496+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/2c4d7561-2f0f-41a2-8ebf-084cc328a67b", "rel": "self"}, {"href": "http://localhost/allocations/2c4d7561-2f0f-41a2-8ebf-084cc328a67b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "1b0e2547-b212-4ae8-8ad3-120d77c5a1f6", "created_at": "2024-09-05T08:47:35.955427+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/1b0e2547-b212-4ae8-8ad3-120d77c5a1f6", "rel": "self"}, {"href": "http://localhost/allocations/1b0e2547-b212-4ae8-8ad3-120d77c5a1f6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9b79b8ab-6348-40de-88dd-d19dacaa505d", "created_at": "2024-09-05T08:47:35.956297+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/9b79b8ab-6348-40de-88dd-d19dacaa505d", "rel": "self"}, {"href": "http://localhost/allocations/9b79b8ab-6348-40de-88dd-d19dacaa505d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e25ff12a-c76b-46ef-8b56-00052d2add93", "created_at": "2024-09-05T08:47:35.957160+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/e25ff12a-c76b-46ef-8b56-00052d2add93", "rel": "self"}, {"href": "http://localhost/allocations/e25ff12a-c76b-46ef-8b56-00052d2add93", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "49be3c43-df29-4a51-91bf-9b732891957f", "created_at": "2024-09-05T08:47:35.959715+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/49be3c43-df29-4a51-91bf-9b732891957f", "rel": "self"}, {"href": "http://localhost/allocations/49be3c43-df29-4a51-91bf-9b732891957f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner [0.076020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f00a4f52-996a-40df-90e4-edf21c6c207d', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f00a4f52-996a-40df-90e4-edf21c6c207d Openstack-Request-Id: req-55652c99-92c4-44bb-9480-abc07232a93d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f00a4f52-996a-40df-90e4-edf21c6c207d", "created_at": "2024-09-05T08:47:36.012695+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/f00a4f52-996a-40df-90e4-edf21c6c207d", "rel": "self"}, {"href": "http://localhost/allocations/f00a4f52-996a-40df-90e4-edf21c6c207d", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/f00a4f52-996a-40df-90e4-edf21c6c207d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-254079e0-5521-4f5c-adaa-34a5d09dcf25 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f00a4f52-996a-40df-90e4-edf21c6c207d", "created_at": "2024-09-05T08:47:36.012695+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/f00a4f52-996a-40df-90e4-edf21c6c207d", "rel": "self"}, {"href": "http://localhost/allocations/f00a4f52-996a-40df-90e4-edf21c6c207d", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.047326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6058f6c9-dac3-4552-86eb-69fbd6ed16e5 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": "f5a500fe-2d81-425f-b164-8753e887f101", "created_at": "2024-09-05T08:47:36.025937+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/f5a500fe-2d81-425f-b164-8753e887f101", "rel": "self"}, {"href": "http://localhost/allocations/f5a500fe-2d81-425f-b164-8753e887f101", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard [0.104049s] ... 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-fccefd78-33ee-4e52-bd90-d766be7693ac 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": "2024-09-05T08:47:36.005988+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled [0.049625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '375f5f21-95ab-4921-804a-96529596b730', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/375f5f21-95ab-4921-804a-96529596b730 Openstack-Request-Id: req-a40f000e-9a94-4e2b-92cd-f132f7534b4b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "375f5f21-95ab-4921-804a-96529596b730", "created_at": "2024-09-05T08:47:36.061084+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/375f5f21-95ab-4921-804a-96529596b730", "rel": "self"}, {"href": "http://localhost/allocations/375f5f21-95ab-4921-804a-96529596b730", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/375f5f21-95ab-4921-804a-96529596b730 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78b2a5b2-fd09-41c5-8d9d-fb1c1b449ccd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "375f5f21-95ab-4921-804a-96529596b730", "created_at": "2024-09-05T08:47:36.061084+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/375f5f21-95ab-4921-804a-96529596b730", "rel": "self"}, {"href": "http://localhost/allocations/375f5f21-95ab-4921-804a-96529596b730", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.057507s] ... 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-47e0026b-6f15-4ca3-b877-d14da06f37c2 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.083142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e471f71a-55e8-48a9-9c28-f5751cf540df 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": "9891abb5-a300-4d7a-abfd-4b0083345bdf", "created_at": "2024-09-05T08:47:36.084966+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/9891abb5-a300-4d7a-abfd-4b0083345bdf", "rel": "self"}, {"href": "http://localhost/allocations/9891abb5-a300-4d7a-abfd-4b0083345bdf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a681606b-8525-47bf-8f30-b3d7db7004bf", "created_at": "2024-09-05T08:47:36.084083+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/a681606b-8525-47bf-8f30-b3d7db7004bf", "rel": "self"}, {"href": "http://localhost/allocations/a681606b-8525-47bf-8f30-b3d7db7004bf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "cbf36430-f09e-4348-945d-8abc241e9b2f", "created_at": "2024-09-05T08:47:36.083170+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/cbf36430-f09e-4348-945d-8abc241e9b2f", "rel": "self"}, {"href": "http://localhost/allocations/cbf36430-f09e-4348-945d-8abc241e9b2f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed [0.045356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8fc04e3d-1810-4dd1-9bb0-c0bcb3fec975', 'owner': '12345'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a9a9425a-7231-424f-9145-74f64a1aa137 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.051254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e82a85f4-5c63-4232-ae7a-62a772a1c9d4 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": "4f480907-b091-45b5-8a84-eaf8efbb58e5", "created_at": "2024-09-05T08:47:36.164433+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/4f480907-b091-45b5-8a84-eaf8efbb58e5", "rel": "self"}, {"href": "http://localhost/allocations/4f480907-b091-45b5-8a84-eaf8efbb58e5", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "691297c2-2b32-4ea4-a946-2d8b1b09bd90", "created_at": "2024-09-05T08:47:36.163507+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/691297c2-2b32-4ea4-a946-2d8b1b09bd90", "rel": "self"}, {"href": "http://localhost/allocations/691297c2-2b32-4ea4-a946-2d8b1b09bd90", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "f882ef0f-7aa7-4ee4-92af-618a06d590d5", "created_at": "2024-09-05T08:47:36.162550+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/f882ef0f-7aa7-4ee4-92af-618a06d590d5", "rel": "self"}, {"href": "http://localhost/allocations/f882ef0f-7aa7-4ee4-92af-618a06d590d5", "rel": "bookmark"}], "node_uuid": null}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.055079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ecb669c6-1295-4e1b-9240-432617393b2f', 'owner': '12345'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fdf47866-7d7e-43b9-8911-b5fbe8a35abf X-Openstack-Ironic-Api-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_node.TestNodeVmedia.test_attach [0.094382s] ... 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-f6b549fb-8805-4a42-9209-b3e32bc64654 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.89 {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.051821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': 'bfb665e8-fcb4-41b3-ba26-c0dcbb030a3c', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f11c95fa-9ad8-45ee-92e7-1a49cb36c04f X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_device_type [0.054570s] ... 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-157eb9b8-b25d-46a8-b9df-c13735fe7662 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}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.099226s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e84273c-4563-4a27-97fb-658aedf1921c X-Openstack-Ironic-Api-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-a91569b7-984e-4718-b6ee-193ea01abae4 X-Openstack-Ironic-Api-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-e0722f94-2fea-491f-8bce-f03f4ccf9fb8 X-Openstack-Ironic-Api-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-bf4cb398-2d45-4b67-a179-d3425336ccbe X-Openstack-Ironic-Api-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_allocation.TestPost.test_create_allocation_valid_extra [0.066756s] ... 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': '91853bd5-d9a5-4e28-8190-33905e5548fd', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/91853bd5-d9a5-4e28-8190-33905e5548fd Openstack-Request-Id: req-56edd704-49be-4df2-8b0c-498c89049511 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "91853bd5-d9a5-4e28-8190-33905e5548fd", "created_at": "2024-09-05T08:47:36.292661+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/91853bd5-d9a5-4e28-8190-33905e5548fd", "rel": "self"}, {"href": "http://localhost/allocations/91853bd5-d9a5-4e28-8190-33905e5548fd", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/91853bd5-d9a5-4e28-8190-33905e5548fd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac4ac404-57dd-4893-b6ea-6ce785898410 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "91853bd5-d9a5-4e28-8190-33905e5548fd", "created_at": "2024-09-05T08:47:36.292661+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/91853bd5-d9a5-4e28-8190-33905e5548fd", "rel": "self"}, {"href": "http://localhost/allocations/91853bd5-d9a5-4e28-8190-33905e5548fd", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.040431s] ... 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-0a57e37c-f762-4772-88f6-548ec6e9bcfa 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_ignores_parent_if_include_children_indicated [0.432322s] ... 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-64d8ea49-a18a-4d97-a02d-e49c87c46b63 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": "9de9b921-358f-406e-8c34-8a351d962cf1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/9de9b921-358f-406e-8c34-8a351d962cf1", "rel": "self"}, {"href": "http://localhost/nodes/9de9b921-358f-406e-8c34-8a351d962cf1", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.060944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['node-1', '464d1718-c99a-4fe6-8605-6976cb91ef4d'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '2856d2c9-1ea1-47d6-8ac7-0b6b2de67402', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/2856d2c9-1ea1-47d6-8ac7-0b6b2de67402 Openstack-Request-Id: req-c877135c-7774-4265-b52c-fb5f44810776 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2856d2c9-1ea1-47d6-8ac7-0b6b2de67402", "created_at": "2024-09-05T08:47:36.350187+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "464d1718-c99a-4fe6-8605-6976cb91ef4d"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/2856d2c9-1ea1-47d6-8ac7-0b6b2de67402", "rel": "self"}, {"href": "http://localhost/allocations/2856d2c9-1ea1-47d6-8ac7-0b6b2de67402", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/2856d2c9-1ea1-47d6-8ac7-0b6b2de67402 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d26f54b2-5e16-4ab3-8291-3d55d485cb8b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2856d2c9-1ea1-47d6-8ac7-0b6b2de67402", "created_at": "2024-09-05T08:47:36.350187+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "464d1718-c99a-4fe6-8605-6976cb91ef4d"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/2856d2c9-1ea1-47d6-8ac7-0b6b2de67402", "rel": "self"}, {"href": "http://localhost/allocations/2856d2c9-1ea1-47d6-8ac7-0b6b2de67402", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_device_type [0.050808s] ... 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-8731a999-ff46-47ea-abac-1f44d7c7b9b2 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_image_url [0.038412s] ... 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-06e83478-a603-4502-bd60-30c40683d7b5 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_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.065754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=c07788b7-2599-4dbd-bb18-db751bcc533b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8c29f98-8a66-4290-8561-816bf10a9d9a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.054477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'bf7c13c2-5bf8-477c-930d-5479043a24e3', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/bf7c13c2-5bf8-477c-930d-5479043a24e3 Openstack-Request-Id: req-2d1e39c1-2b20-40c5-837e-7ec5c6a40fd4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "bf7c13c2-5bf8-477c-930d-5479043a24e3", "created_at": "2024-09-05T08:47:36.412548+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/bf7c13c2-5bf8-477c-930d-5479043a24e3", "rel": "self"}, {"href": "http://localhost/allocations/bf7c13c2-5bf8-477c-930d-5479043a24e3", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_required_only [0.064473s] ... 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-030b5454-a93e-46ad-9af3-e08e3b1c3114 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_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.072945s] ... 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-cd4bab71-ff14-4dc0-8d00-9acb72bc855c 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": "fa7d8408-465b-488c-8e1a-469d2c6adcab", "name": "din", "parent_node": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.073234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '67735864-d387-4333-a62d-63b8de9a5ec8', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/67735864-d387-4333-a62d-63b8de9a5ec8 Openstack-Request-Id: req-ff2f13e1-a43e-441f-877c-3845c2cf63fb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "67735864-d387-4333-a62d-63b8de9a5ec8", "created_at": "2024-09-05T08:47:36.474738+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/67735864-d387-4333-a62d-63b8de9a5ec8", "rel": "self"}, {"href": "http://localhost/allocations/67735864-d387-4333-a62d-63b8de9a5ec8", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/67735864-d387-4333-a62d-63b8de9a5ec8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-188c8851-f07d-4972-a613-be7f77526d6c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "67735864-d387-4333-a62d-63b8de9a5ec8", "created_at": "2024-09-05T08:47:36.474738+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/67735864-d387-4333-a62d-63b8de9a5ec8", "rel": "self"}, {"href": "http://localhost/allocations/67735864-d387-4333-a62d-63b8de9a5ec8", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_wrong_version [0.031539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'http://image'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.058913s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df41e3e7-81e5-4046-914d-6f646e6debb3 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": "2fc8da84-655c-4102-8449-0d3bc32a8ae9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/2fc8da84-655c-4102-8449-0d3bc32a8ae9", "rel": "self"}, {"href": "http://localhost/nodes/2fc8da84-655c-4102-8449-0d3bc32a8ae9", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.056943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content Openstack-Request-Id: req-c73d5118-7229-46b2-b354-7314b60c5b9c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.89 {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.090016s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '7f7daf22-a2a3-44d1-bfe9-108c54238cb4', 'owner': None} GOT Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_firmware_components [0.063431s] ... 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-537b5117-84dd-47a0-89b2-d37906cf0cd5 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": "2024-09-05T08:47:36.572899+00:00", "updated_at": null, "component": "BIOS", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}, {"created_at": "2024-09-05T08:47:36.571695+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.045525s] ... 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-6fcdd373-001f-424e-8d38-548bec2bc0c0 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_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.037227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/firmware WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.049731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content Openstack-Request-Id: req-e4c230e9-5480-423e-947b-2e2b580bd112 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.89 {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.071263s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fb46e72e-d489-46c5-b8ac-e1ec6ac1d17a', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b2e5bec1-26c5-4ccb-ae36-d4cd9277f477 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.037927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content Openstack-Request-Id: req-3f2b5987-f750-497a-bf1d-d64937d5e6f6 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_node.TestNodeHistory.test_get_all_history [0.067797s] ... 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-1e27ac1a-337f-45a6-9f1a-966ea912b259 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": []} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.068197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5 Openstack-Request-Id: req-214914e4-f24e-4a59-aba0-f0931b152808 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5", "created_at": "2024-09-05T08:47:36.716151+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/b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5", "rel": "self"}, {"href": "http://localhost/allocations/b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c7a522a-c846-4922-8f80-edd8a0c4a043 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5", "created_at": "2024-09-05T08:47:36.716151+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/b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5", "rel": "self"}, {"href": "http://localhost/allocations/b6b3f8ee-d5b6-4a9c-b5a0-0be5101481d5", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_device_types [0.041574s] ... 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-1c1f7cdb-2392-4c64-98e8-97201977fc26 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_node.TestNodeHistory.test_get_all_history_returns_detail [0.052417s] ... 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-215331b6-5e0b-405d-9a1d-6b7dd339aa65 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": "17afd16d-0d86-4218-93ec-dc2526f7a139", "created_at": "2024-09-05T08:47:36.749570+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/17afd16d-0d86-4218-93ec-dc2526f7a139", "rel": "self"}]}, {"uuid": "fbc2ab72-5426-4123-b04b-726ffa7771c8", "created_at": "2024-09-05T08:47:36.750527+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/fbc2ab72-5426-4123-b04b-726ffa7771c8", "rel": "self"}]}, {"uuid": "df9a89d2-c6e0-4770-b7fb-f5a6bd9483c7", "created_at": "2024-09-05T08:47:36.751380+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/df9a89d2-c6e0-4770-b7fb-f5a6bd9483c7", "rel": "self"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_version [0.029554s] ... 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_allocation.TestPost.test_create_restricted_allocation_forbidden [0.052643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '413f72a4-6352-4eb8-8d90-40431e5d5b82', 'owner': None} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2419072b-3966-4053-aef5-3e5d4a67426a 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_chassis.TestPost.test_create_chassis [0.524541s] ... 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-d48fbda8-cbad-455a-a7b5-f590a67d14d5 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-e04ce4ec-c77b-4cc4-b7a7-65b0be3455a7 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"}]]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal [0.058311s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '38fadcfa-b272-47de-b588-c2970a22eefc', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/38fadcfa-b272-47de-b588-c2970a22eefc Openstack-Request-Id: req-5ccf1e23-f483-46ed-bcf8-146f850edeb0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "38fadcfa-b272-47de-b588-c2970a22eefc", "created_at": "2024-09-05T08:47:36.825189+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/38fadcfa-b272-47de-b588-c2970a22eefc", "rel": "self"}, {"href": "http://localhost/allocations/38fadcfa-b272-47de-b588-c2970a22eefc", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/38fadcfa-b272-47de-b588-c2970a22eefc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85a79698-c3e8-46d2-8767-2c14555e932b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "38fadcfa-b272-47de-b588-c2970a22eefc", "created_at": "2024-09-05T08:47:36.825189+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/38fadcfa-b272-47de-b588-c2970a22eefc", "rel": "self"}, {"href": "http://localhost/allocations/38fadcfa-b272-47de-b588-c2970a22eefc", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.081099s] ... 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-679db20b-0c73-4752-9dcc-0ef67491f852 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": "de39c703-bfe1-4c13-85eb-16bcdd5134d4", "created_at": "2024-09-05T08:47:36.797887+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/de39c703-bfe1-4c13-85eb-16bcdd5134d4", "rel": "self"}]}, {"uuid": "0e1bf38b-7eb5-4ba3-b8ec-b7c55ac19388", "created_at": "2024-09-05T08:47:36.801399+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0e1bf38b-7eb5-4ba3-b8ec-b7c55ac19388", "rel": "self"}]}, {"uuid": "b62bb203-ea1d-4e8b-a5d5-bfe7ff7eaf9e", "created_at": "2024-09-05T08:47:36.802178+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b62bb203-ea1d-4e8b-a5d5-bfe7ff7eaf9e", "rel": "self"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_multi [0.076206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52cd4dde-301a-4e9c-85bd-957a798811c4 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": "38ed39cc-97dc-4c55-b7bf-bba70bc0f86d", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/38ed39cc-97dc-4c55-b7bf-bba70bc0f86d", "rel": "self"}, {"href": "http://localhost/ports/38ed39cc-97dc-4c55-b7bf-bba70bc0f86d", "rel": "bookmark"}]}, {"uuid": "edd80a4d-7071-427b-9d43-7624cf66140f", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/edd80a4d-7071-427b-9d43-7624cf66140f", "rel": "self"}, {"href": "http://localhost/ports/edd80a4d-7071-427b-9d43-7624cf66140f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.067197s] ... 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-872c494b-5793-400f-a0ee-ee9433a90295 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": "2024-09-05T08:47:36.865847+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-08631300-504c-4f1b-ac1c-8ab40ca33e0c 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": "2024-09-05T08:47:36.865847+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version [0.053056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '80394676-e531-4c18-add8-ab01f18823c1'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/80394676-e531-4c18-add8-ab01f18823c1 Openstack-Request-Id: req-1f81301f-bb39-4c18-9bcf-09233583bc81 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "80394676-e531-4c18-add8-ab01f18823c1", "created_at": "2024-09-05T08:47:36.880255+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/80394676-e531-4c18-add8-ab01f18823c1", "rel": "self"}, {"href": "http://localhost/allocations/80394676-e531-4c18-add8-ab01f18823c1", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/80394676-e531-4c18-add8-ab01f18823c1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11d80db2-72a8-4550-a6cc-7f543ca095d0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "80394676-e531-4c18-add8-ab01f18823c1", "created_at": "2024-09-05T08:47:36.880255+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/80394676-e531-4c18-add8-ab01f18823c1", "rel": "self"}, {"href": "http://localhost/allocations/80394676-e531-4c18-add8-ab01f18823c1", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.052048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.041389s] ... 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-7201f74d-6e2e-4714-aa33-469216bd398e 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}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner [0.049372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '753643f6-a1e0-4f69-801d-82969abac682', 'owner': '54321'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-80472c64-06e5-4b43-9cf6-7c4f3455b2d8 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.089345s] ... 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-4792a667-5e16-4f8e-ad18-a895a007251f 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": "efad7ab8-7dd3-4e36-949b-581579f2ecef", "created_at": "2024-09-05T08:47:36.930559+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/efad7ab8-7dd3-4e36-949b-581579f2ecef", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&fields=uuid,created_at,severity,event&limit=1&marker=efad7ab8-7dd3-4e36-949b-581579f2ecef"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=efad7ab8-7dd3-4e36-949b-581579f2ecef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63a47dfd-b15d-4aa1-a5e0-56fec231f536 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": "024912be-e43f-49cf-b4a2-d1815e0d7971", "created_at": "2024-09-05T08:47:36.931519+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/024912be-e43f-49cf-b4a2-d1815e0d7971", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2024-09-05T08:47:36Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=efad7ab8-7dd3-4e36-949b-581579f2ecef)&fields=uuid,created_at,severity,event&limit=1&marker=024912be-e43f-49cf-b4a2-d1815e0d7971"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=024912be-e43f-49cf-b4a2-d1815e0d7971 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed8acdb0-320c-433e-a96d-092f71a0da89 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": "c6514322-79c9-4b0a-bb61-4db3485cb969", "created_at": "2024-09-05T08:47:36.933322+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c6514322-79c9-4b0a-bb61-4db3485cb969", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2024-09-05T08:47:36Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=024912be-e43f-49cf-b4a2-d1815e0d7971)&fields=uuid,created_at,severity,event&limit=1&marker=c6514322-79c9-4b0a-bb61-4db3485cb969"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.071224s] ... 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/7edabba6-fd1f-40db-89a4-ac84c6725550 Openstack-Request-Id: req-fc6d952f-276f-494f-969b-f64b46902dab X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7edabba6-fd1f-40db-89a4-ac84c6725550", "created_at": "2024-09-05T08:47:36.964545+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7edabba6-fd1f-40db-89a4-ac84c6725550", "rel": "self"}, {"href": "http://localhost/chassis/7edabba6-fd1f-40db-89a4-ac84c6725550", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7edabba6-fd1f-40db-89a4-ac84c6725550/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7edabba6-fd1f-40db-89a4-ac84c6725550/nodes", "rel": "bookmark"}]]} GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77681db8-327b-48ac-9051-e05d2509dad4 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": "7edabba6-fd1f-40db-89a4-ac84c6725550", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/7edabba6-fd1f-40db-89a4-ac84c6725550", "rel": "self"}, {"href": "http://localhost/chassis/7edabba6-fd1f-40db-89a4-ac84c6725550", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.047270s] ... 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-873bdee6-2f03-443b-a482-e2d71c26b949 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item [0.055101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f087e79d-976a-43e5-8bf0-912f2e081bb8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ecccff8e-8493-4716-aeaa-e6f272cc5902 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"uuid": "f087e79d-976a-43e5-8bf0-912f2e081bb8", "created_at": "2024-09-05T08:47:37.020620+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/f087e79d-976a-43e5-8bf0-912f2e081bb8", "rel": "self"}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.044038s] ... 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-7f5e637b-559c-4539-82ff-bed0ffdacf96 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_node.TestNodeHistory.test_get_history_item_not_found [0.064556s] ... 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-3cbdb34c-dc9b-4d3e-9c90-0ee0dd459068 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}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.044361s] ... 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-38c3869c-1736-409d-96f0-a3f9ae58cef0 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": "2024-09-05T08:47:37.118024+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-428739df-3914-4608-b153-d337fba115d0 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": "2024-09-05T08:47:37.118024+00:00", "updated_at": null, "description": "\u0430\u043c\u043e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version [0.052535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1234 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.397990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-65143a8b-2b45-4680-86bf-07f0ce879ee8 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": "502be43b-d415-43b9-a6c9-ee2dc11cfc2e", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/502be43b-d415-43b9-a6c9-ee2dc11cfc2e", "rel": "self"}, {"href": "http://localhost/ports/502be43b-d415-43b9-a6c9-ee2dc11cfc2e", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.118259s] ... 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-85dfbaa6-c9b1-41a8-91f3-c2f43c41e230 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": "2024-09-05T08:47:37.226949+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-38c5ab01-da55-4a4c-8940-ef2db7148609 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": "2024-09-05T08:47:37.226949+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner [0.351577s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e256718a-8703-4d5d-81b0-9fe6c72aa877', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/e256718a-8703-4d5d-81b0-9fe6c72aa877 Openstack-Request-Id: req-f937b5b4-f790-407b-a595-e0010b5eefeb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "e256718a-8703-4d5d-81b0-9fe6c72aa877", "created_at": "2024-09-05T08:47:37.276897+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/e256718a-8703-4d5d-81b0-9fe6c72aa877", "rel": "self"}, {"href": "http://localhost/allocations/e256718a-8703-4d5d-81b0-9fe6c72aa877", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e256718a-8703-4d5d-81b0-9fe6c72aa877 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17878223-158e-41b5-b2a7-1157ccd753a3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "e256718a-8703-4d5d-81b0-9fe6c72aa877", "created_at": "2024-09-05T08:47:37.276897+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/e256718a-8703-4d5d-81b0-9fe6c72aa877", "rel": "self"}, {"href": "http://localhost/allocations/e256718a-8703-4d5d-81b0-9fe6c72aa877", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.048338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1fd1ae45-2767-44a2-85a7-9d18b0289cbf 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.142128s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '1902ee05-360f-4036-8b3f-8130c821f20e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/1902ee05-360f-4036-8b3f-8130c821f20e Openstack-Request-Id: req-fc14612d-b774-4108-98fa-0f3ed032bb2f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "1902ee05-360f-4036-8b3f-8130c821f20e", "created_at": "2024-09-05T08:47:37.284925+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/1902ee05-360f-4036-8b3f-8130c821f20e", "rel": "self"}, {"href": "http://localhost/nodes/1902ee05-360f-4036-8b3f-8130c821f20e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/states", "rel": "self"}, {"href": "http://localhost/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1902ee05-360f-4036-8b3f-8130c821f20e/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.033325s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.063625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dee8bbfa-fddf-4281-b137-1f4964f612cd 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": "34a18d25-ee82-43ee-bee9-968a444cb014", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/34a18d25-ee82-43ee-bee9-968a444cb014", "rel": "self"}, {"href": "http://localhost/chassis/34a18d25-ee82-43ee-bee9-968a444cb014", "rel": "bookmark"}]}, {"uuid": "99598b17-74c0-4b2d-8e99-ed2098ded362", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/99598b17-74c0-4b2d-8e99-ed2098ded362", "rel": "self"}, {"href": "http://localhost/chassis/99598b17-74c0-4b2d-8e99-ed2098ded362", "rel": "bookmark"}]}, {"uuid": "1cf0ddcb-4ed6-473e-9eda-75a8d21d50be", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/1cf0ddcb-4ed6-473e-9eda-75a8d21d50be", "rel": "self"}, {"href": "http://localhost/chassis/1cf0ddcb-4ed6-473e-9eda-75a8d21d50be", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=1cf0ddcb-4ed6-473e-9eda-75a8d21d50be"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.028710s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.129686s] ... 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-51268939-4671-4ba8-afba-43540e5a0bca 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_chassis.TestListChassis.test_collection_links_custom_fields [0.035599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-691fb62d-5e94-4ecb-a37d-2b7225814e00 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": "4243fae2-83aa-40be-a66d-c7d9898ff205", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/4243fae2-83aa-40be-a66d-c7d9898ff205", "rel": "self"}, {"href": "http://localhost/chassis/4243fae2-83aa-40be-a66d-c7d9898ff205", "rel": "bookmark"}]}, {"uuid": "4a228e71-6280-464b-974b-f75b3233a47e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/4a228e71-6280-464b-974b-f75b3233a47e", "rel": "self"}, {"href": "http://localhost/chassis/4a228e71-6280-464b-974b-f75b3233a47e", "rel": "bookmark"}]}, {"uuid": "f2902997-47f5-4fc1-a043-97f715711caa", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/f2902997-47f5-4fc1-a043-97f715711caa", "rel": "self"}, {"href": "http://localhost/chassis/f2902997-47f5-4fc1-a043-97f715711caa", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=f2902997-47f5-4fc1-a043-97f715711caa"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node [0.120454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '40189299-0b1d-4269-b84e-d43c441a5a9a', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/40189299-0b1d-4269-b84e-d43c441a5a9a Openstack-Request-Id: req-15780a21-1224-45c7-80dc-90d27c2e70ba X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "40189299-0b1d-4269-b84e-d43c441a5a9a", "created_at": "2024-09-05T08:47:37.403185+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/40189299-0b1d-4269-b84e-d43c441a5a9a", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/ports", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/states", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/volume", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/volume", "rel": "bookmark"}]} GET /v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-acef61ef-4c0e-46ba-b880-f73263be6ef3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "40189299-0b1d-4269-b84e-d43c441a5a9a", "created_at": "2024-09-05T08:47:37.403185+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/40189299-0b1d-4269-b84e-d43c441a5a9a", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/ports", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/states", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/volume", "rel": "self"}, {"href": "http://localhost/nodes/40189299-0b1d-4269-b84e-d43c441a5a9a/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.038686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86b60ab7-1c3b-4505-9223-133fbeea55e4 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": "f9b0d9a7-85a3-43db-9e68-d57a764180ac", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/f9b0d9a7-85a3-43db-9e68-d57a764180ac", "rel": "self"}, {"href": "http://localhost/chassis/f9b0d9a7-85a3-43db-9e68-d57a764180ac", "rel": "bookmark"}]}, {"uuid": "2eb1f89b-e760-486d-bfef-2a159e0120ac", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/2eb1f89b-e760-486d-bfef-2a159e0120ac", "rel": "self"}, {"href": "http://localhost/chassis/2eb1f89b-e760-486d-bfef-2a159e0120ac", "rel": "bookmark"}]}, {"uuid": "7120297b-1a33-4ce8-a824-bd4f64c0aff8", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/7120297b-1a33-4ce8-a824-bd4f64c0aff8", "rel": "self"}, {"href": "http://localhost/chassis/7120297b-1a33-4ce8-a824-bd4f64c0aff8", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=7120297b-1a33-4ce8-a824-bd4f64c0aff8"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.079065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-664311b2-c459-48e1-93f4-41b5b4fa6140 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": "7c674bcc-2b4d-4bb1-a11d-f68424aa3199", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/7c674bcc-2b4d-4bb1-a11d-f68424aa3199", "rel": "self"}, {"href": "http://localhost/deploy_templates/7c674bcc-2b4d-4bb1-a11d-f68424aa3199", "rel": "bookmark"}]}, {"uuid": "b6df91a5-8e95-4b74-bdf2-a2d8bbef3c95", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b6df91a5-8e95-4b74-bdf2-a2d8bbef3c95", "rel": "self"}, {"href": "http://localhost/deploy_templates/b6df91a5-8e95-4b74-bdf2-a2d8bbef3c95", "rel": "bookmark"}]}, {"uuid": "37516bff-3fa9-43eb-b4f0-ea5d3d67a0ce", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/37516bff-3fa9-43eb-b4f0-ea5d3d67a0ce", "rel": "self"}, {"href": "http://localhost/deploy_templates/37516bff-3fa9-43eb-b4f0-ea5d3d67a0ce", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=37516bff-3fa9-43eb-b4f0-ea5d3d67a0ce"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.058927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6415ff86-cb37-41e8-9fd4-207063a5a5ae 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": "2024-09-05T08:47:37.471956+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_port.TestPost.test_create_port [0.162723s] ... 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-ecb1ec18-b77e-42c1-a0b6-7112c87a921b 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-857edd45-5203-4327-98ec-1526d4291f90 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.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.032752s] ... 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-4c420098-9a04-4488-980f-fd414c6e996d 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.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.109185s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '3b4f205b-f472-4236-9ee5-9c4968b96c67', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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-fd9640bc-faa0-407e-877b-dd5c17a37a6c 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.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.075261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fbabacb-2fd0-4b26-9f8d-5124af43e134 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": "ec4eb168-a660-4bc5-9d28-e244f383e385", "links": [{"href": "http://localhost/v1/deploy_templates/ec4eb168-a660-4bc5-9d28-e244f383e385", "rel": "self"}, {"href": "http://localhost/deploy_templates/ec4eb168-a660-4bc5-9d28-e244f383e385", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "8e57083b-4ff7-4085-9661-c977bf6ce944", "links": [{"href": "http://localhost/v1/deploy_templates/8e57083b-4ff7-4085-9661-c977bf6ce944", "rel": "self"}, {"href": "http://localhost/deploy_templates/8e57083b-4ff7-4085-9661-c977bf6ce944", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "851a2d6b-d5bb-4431-a8f6-cb0f8efb27a4", "links": [{"href": "http://localhost/v1/deploy_templates/851a2d6b-d5bb-4431-a8f6-cb0f8efb27a4", "rel": "self"}, {"href": "http://localhost/deploy_templates/851a2d6b-d5bb-4431-a8f6-cb0f8efb27a4", "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=851a2d6b-d5bb-4431-a8f6-cb0f8efb27a4"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.039747s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce416aa7-1dc4-4b7d-bcf4-e130232755ab 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": "2024-09-05T08:47:37.557429+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.048760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1bd46d90-6539-4a54-8b99-fca6f35a7236 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": "ac5ecdfc-66ae-4cab-9abb-81e31e2a7c9f", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/ac5ecdfc-66ae-4cab-9abb-81e31e2a7c9f", "rel": "self"}, {"href": "http://localhost/deploy_templates/ac5ecdfc-66ae-4cab-9abb-81e31e2a7c9f", "rel": "bookmark"}]}, {"uuid": "985c14c7-e16f-43f9-bceb-5101f0db9553", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/985c14c7-e16f-43f9-bceb-5101f0db9553", "rel": "self"}, {"href": "http://localhost/deploy_templates/985c14c7-e16f-43f9-bceb-5101f0db9553", "rel": "bookmark"}]}, {"uuid": "7285525c-ebf3-4b7f-94a3-cbda1d4b435d", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/7285525c-ebf3-4b7f-94a3-cbda1d4b435d", "rel": "self"}, {"href": "http://localhost/deploy_templates/7285525c-ebf3-4b7f-94a3-cbda1d4b435d", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=7285525c-ebf3-4b7f-94a3-cbda1d4b435d"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.053552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79321e68-51b7-41db-8e8f-90f833d69605 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-badd3e76-e795-4776-895c-7eb998978315 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.040983s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9c19314-3824-491e-a0e2-0f090e62c247 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": "a049147f-c902-4058-a958-d908d1cf1ef5", "created_at": "2024-09-05T08:47:37.622836+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a049147f-c902-4058-a958-d908d1cf1ef5", "rel": "self"}, {"href": "http://localhost/deploy_templates/a049147f-c902-4058-a958-d908d1cf1ef5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.039070s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5009870-360f-4d39-a91c-ce42c2b4b5cf 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": "6ca863fd-c392-4efb-b36e-b61d1e669f03", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6ca863fd-c392-4efb-b36e-b61d1e669f03", "rel": "self"}, {"href": "http://localhost/deploy_templates/6ca863fd-c392-4efb-b36e-b61d1e669f03", "rel": "bookmark"}]}]} GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e725e142-654a-4a18-8985-e537a90ba2b4 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": "6ca863fd-c392-4efb-b36e-b61d1e669f03", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6ca863fd-c392-4efb-b36e-b61d1e669f03", "rel": "self"}, {"href": "http://localhost/deploy_templates/6ca863fd-c392-4efb-b36e-b61d1e669f03", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.160573s] ... 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-2044b89d-c491-4cdc-9e18-f8647a2dbefe X-Openstack-Ironic-Api-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.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.072337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bc1a429e-cef9-4347-858f-c7aca6df19a9 X-Openstack-Ironic-Api-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_node.TestPost.test_create_node [0.180249s] ... 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-829a891c-2808-464b-b7c5-ccceea35c734 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-84c31a67-4d94-4b86-859a-b121ac4f7f89 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.057543s] ... 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-624fa9dc-23a3-4052-bc37-4acd85611291 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": "31187ace-797b-4326-977f-6910adfb4623", "created_at": "2024-09-05T08:47:37.719220+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/31187ace-797b-4326-977f-6910adfb4623", "rel": "self"}, {"href": "http://localhost/deploy_templates/31187ace-797b-4326-977f-6910adfb4623", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "479c3cc0-3082-4260-bb22-f8ade97a9793", "created_at": "2024-09-05T08:47:37.717564+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/479c3cc0-3082-4260-bb22-f8ade97a9793", "rel": "self"}, {"href": "http://localhost/deploy_templates/479c3cc0-3082-4260-bb22-f8ade97a9793", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "fe3c6895-5c67-49a3-b775-c9ec050232ee", "created_at": "2024-09-05T08:47:37.715425+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fe3c6895-5c67-49a3-b775-c9ec050232ee", "rel": "self"}, {"href": "http://localhost/deploy_templates/fe3c6895-5c67-49a3-b775-c9ec050232ee", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.030921s] ... 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-7f1ba69d-9b26-4c3f-b56b-1c443e35242e X-Openstack-Ironic-Api-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_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.068663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6052bcb-852f-4b48-bffe-6a5d26a28451 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.036386s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa85d7a5-171d-4b48-a42e-4b0e928f256d 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/091e9733-9a23-4073-b11d-58f3ec2f22cd", "rel": "self"}, {"href": "http://localhost/deploy_templates/091e9733-9a23-4073-b11d-58f3ec2f22cd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.032060s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cfd02811-153d-4304-8bc0-62cc33c11814 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.103088s] ... 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-ae23ca07-0b75-4945-a297-ef61f4aaf95c 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": "2024-09-05T08:47:37.802283+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-a629139a-1663-4d47-bc7f-4dd0ad07746e 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": "2024-09-05T08:47:37.802283+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.168242s] ... 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-61491030-35bb-46ea-b30e-6171e1d08740 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": "2024-09-05T08:47:37.785880+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-984c3b32-61cf-49d0-9f15-a8dab9aa3117 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": "2024-09-05T08:47:37.785880+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"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty [0.053594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-748f974c-d702-4d36-bcee-8ee1735f6cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.069318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff6fac25-f8d6-44a1-bbbc-e860503d7dd0 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": []} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.050054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3fafb908-2e6e-4884-aaf1-95e9d2025cae 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": "2d7ec4f9-4ccb-4495-91b6-2823df43506b", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/2d7ec4f9-4ccb-4495-91b6-2823df43506b", "rel": "self"}, {"href": "http://localhost/chassis/2d7ec4f9-4ccb-4495-91b6-2823df43506b", "rel": "bookmark"}]}, {"uuid": "268d06a7-5563-49c7-b7d1-2c78253f3bd8", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/268d06a7-5563-49c7-b7d1-2c78253f3bd8", "rel": "self"}, {"href": "http://localhost/chassis/268d06a7-5563-49c7-b7d1-2c78253f3bd8", "rel": "bookmark"}]}, {"uuid": "009b1c25-d550-40ce-ba36-72d33ade54c5", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/009b1c25-d550-40ce-ba36-72d33ade54c5", "rel": "self"}, {"href": "http://localhost/chassis/009b1c25-d550-40ce-ba36-72d33ade54c5", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.094766s] ... 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-1f513b84-ba66-4f85-a15a-c32e8fff219d 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_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.083044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.082112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55edb3fa-ef75-4e01-bd04-c73ffb879d7c 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/717632f4-5090-47f3-9b60-c1e6ed85eab8", "rel": "self"}, {"href": "http://localhost/chassis/717632f4-5090-47f3-9b60-c1e6ed85eab8", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/e660012d-4ad7-41c8-ad88-937cb8e6313c", "rel": "self"}, {"href": "http://localhost/chassis/e660012d-4ad7-41c8-ad88-937cb8e6313c", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=e660012d-4ad7-41c8-ad88-937cb8e6313c"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.170547s] ... 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-3409b2b1-6858-4042-8745-d92af36881ec 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": "2024-09-05T08:47:37.974049+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-713b244a-a4ba-46c7-a713-7c400a8ce7a0 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": "2024-09-05T08:47:37.974049+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"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.084322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c77d3fdd-cef8-4b1b-a96d-61ded62d926f 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": "87a6721c-3b4a-4108-803c-7cc559e75d2a", "links": [{"href": "http://localhost/v1/deploy_templates/87a6721c-3b4a-4108-803c-7cc559e75d2a", "rel": "self"}, {"href": "http://localhost/deploy_templates/87a6721c-3b4a-4108-803c-7cc559e75d2a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "89cb0fa8-e9d2-410e-909a-1496d2609c93", "links": [{"href": "http://localhost/v1/deploy_templates/89cb0fa8-e9d2-410e-909a-1496d2609c93", "rel": "self"}, {"href": "http://localhost/deploy_templates/89cb0fa8-e9d2-410e-909a-1496d2609c93", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "c3e023ee-ba6a-4589-82bf-d90abf6fa6ea", "links": [{"href": "http://localhost/v1/deploy_templates/c3e023ee-ba6a-4589-82bf-d90abf6fa6ea", "rel": "self"}, {"href": "http://localhost/deploy_templates/c3e023ee-ba6a-4589-82bf-d90abf6fa6ea", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.057755s] ... 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-18a11065-e5dc-447b-b83b-0c2b185f2241 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_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.159680s] ... 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-cb8a87d0-1724-4a02-8454-bee53e5589b0 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-a1f16d18-13bb-43f2-8424-fdfced7e3bf9 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': '99956ecc-51e5-468a-9e62-948cc8d64255', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/99956ecc-51e5-468a-9e62-948cc8d64255 Openstack-Request-Id: req-967ec163-a757-40f3-8976-9865dc0b637e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "99956ecc-51e5-468a-9e62-948cc8d64255", "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/99956ecc-51e5-468a-9e62-948cc8d64255", "rel": "self"}, {"href": "http://localhost/nodes/99956ecc-51e5-468a-9e62-948cc8d64255", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99956ecc-51e5-468a-9e62-948cc8d64255/ports", "rel": "self"}, {"href": "http://localhost/nodes/99956ecc-51e5-468a-9e62-948cc8d64255/ports", "rel": "bookmark"}]} GET /v1/nodes/99956ecc-51e5-468a-9e62-948cc8d64255 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6666c72f-8250-4687-b784-d9201dcc3e1c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "99956ecc-51e5-468a-9e62-948cc8d64255", "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/99956ecc-51e5-468a-9e62-948cc8d64255", "rel": "self"}, {"href": "http://localhost/nodes/99956ecc-51e5-468a-9e62-948cc8d64255", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99956ecc-51e5-468a-9e62-948cc8d64255/ports", "rel": "self"}, {"href": "http://localhost/nodes/99956ecc-51e5-468a-9e62-948cc8d64255/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.045524s] ... 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-8e272282-b853-4dd8-b230-e1805c783eb8 X-Openstack-Ironic-Api-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_port.TestPost.test_create_port_error [0.090496s] ... 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-b242cefd-fc24-43b6-a35b-d3e4007dcd4a X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.075723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e071d520-2057-40ed-9b64-7ad8a10302d6 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/acb22875-3076-44cc-8888-41cc2f9172c0", "rel": "self"}, {"href": "http://localhost/deploy_templates/acb22875-3076-44cc-8888-41cc2f9172c0", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/93c3864d-7db6-4992-af55-e7de0ad532e8", "rel": "self"}, {"href": "http://localhost/deploy_templates/93c3864d-7db6-4992-af55-e7de0ad532e8", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=93c3864d-7db6-4992-af55-e7de0ad532e8"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.057620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc782629-a5c2-488d-9aba-674e3aabf8b8 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": "2024-09-05T08:47:38.146262+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.058650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/133fd90d-2a44-4b62-b6fa-740cc6910cd6?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a830bd7c-dc82-4ffb-b5ff-3de09a1b7608 X-Openstack-Ironic-Api-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_chassis.TestListChassis.test_get_one_custom_fields [0.046633s] ... 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-131a7243-4776-4973-b335-0d02d4367fc2 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.053214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/f8ebb29f-359e-4a5f-8a02-87bd33aad37f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9589aef-1735-4362-8cb7-5109fc8a0e0e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f8ebb29f-359e-4a5f-8a02-87bd33aad37f", "created_at": "2024-09-05T08:47:38.226229+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f8ebb29f-359e-4a5f-8a02-87bd33aad37f", "rel": "self"}, {"href": "http://localhost/deploy_templates/f8ebb29f-359e-4a5f-8a02-87bd33aad37f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.151221s] ... 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-ae20dc71-9278-4db3-9cb4-296a3ee88b93 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}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.047255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5c69ebd-2df2-4ae7-8f86-d18e6117821f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4122d2bf-6ab5-451c-aed9-a460ee1d5032", "created_at": "2024-09-05T08:47:38.248789+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032", "rel": "self"}, {"href": "http://localhost/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032/nodes", "rel": "self"}, {"href": "http://localhost/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032/nodes", "rel": "bookmark"}]]} GET /v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-440fe0d5-8abe-432f-a219-f93d84efece8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4122d2bf-6ab5-451c-aed9-a460ee1d5032", "created_at": "2024-09-05T08:47:38.248789+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032", "rel": "self"}, {"href": "http://localhost/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032/nodes", "rel": "self"}, {"href": "http://localhost/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032/nodes", "rel": "bookmark"}]]} GET /chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d895a524-64ac-4d9e-93a8-c53dd75299cd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4122d2bf-6ab5-451c-aed9-a460ee1d5032", "created_at": "2024-09-05T08:47:38.248789+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032", "rel": "self"}, {"href": "http://localhost/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032/nodes", "rel": "self"}, {"href": "http://localhost/chassis/4122d2bf-6ab5-451c-aed9-a460ee1d5032/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.040220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/6d645992-93de-48e3-8552-214359664efb?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59bb63c9-30e2-41b7-a1f2-dc5b4af04786 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/6d645992-93de-48e3-8552-214359664efb", "rel": "self"}, {"href": "http://localhost/deploy_templates/6d645992-93de-48e3-8552-214359664efb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.194349s] ... 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/422a7d36-51ef-4f83-bbcd-b6b89787b448 Openstack-Request-Id: req-8b24eb2f-a5bf-4a8d-861b-1be82119db6a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "422a7d36-51ef-4f83-bbcd-b6b89787b448", "created_at": "2024-09-05T08:47:38.268526+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/422a7d36-51ef-4f83-bbcd-b6b89787b448", "rel": "self"}, {"href": "http://localhost/ports/422a7d36-51ef-4f83-bbcd-b6b89787b448", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/422a7d36-51ef-4f83-bbcd-b6b89787b448 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8f938aa-521e-470a-bed4-b1557a552bef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "422a7d36-51ef-4f83-bbcd-b6b89787b448", "created_at": "2024-09-05T08:47:38.268526+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/422a7d36-51ef-4f83-bbcd-b6b89787b448", "rel": "self"}, {"href": "http://localhost/ports/422a7d36-51ef-4f83-bbcd-b6b89787b448", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.034946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/02a012bb-a885-4eb2-ab50-5daeb7d1015e WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.085986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-925227b2-c18f-4e1e-acc9-547db758fb98 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1a11f922-749a-4ba5-b345-994396f218fc", "created_at": "2024-09-05T08:47:38.304105+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc", "rel": "self"}, {"href": "http://foo/chassis/1a11f922-749a-4ba5-b345-994396f218fc", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc/nodes", "rel": "self"}, {"href": "http://foo/chassis/1a11f922-749a-4ba5-b345-994396f218fc/nodes", "rel": "bookmark"}]]} GET /v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa1df442-6344-4367-aa93-e0ae8df8cbe6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1a11f922-749a-4ba5-b345-994396f218fc", "created_at": "2024-09-05T08:47:38.304105+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc", "rel": "self"}, {"href": "http://foo/chassis/1a11f922-749a-4ba5-b345-994396f218fc", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc/nodes", "rel": "self"}, {"href": "http://foo/chassis/1a11f922-749a-4ba5-b345-994396f218fc/nodes", "rel": "bookmark"}]]} GET /chassis/1a11f922-749a-4ba5-b345-994396f218fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f6a7bf9d-19f6-4cd7-a102-725d2d30987b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1a11f922-749a-4ba5-b345-994396f218fc", "created_at": "2024-09-05T08:47:38.304105+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc", "rel": "self"}, {"href": "http://foo/chassis/1a11f922-749a-4ba5-b345-994396f218fc", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/1a11f922-749a-4ba5-b345-994396f218fc/nodes", "rel": "self"}, {"href": "http://foo/chassis/1a11f922-749a-4ba5-b345-994396f218fc/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.055065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/21beeee0-68e6-413a-91d9-f5a2b9782b00.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2716a8a6-bce6-4524-88ed-af549e7052f0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "21beeee0-68e6-413a-91d9-f5a2b9782b00", "created_at": "2024-09-05T08:47:38.361676+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/21beeee0-68e6-413a-91d9-f5a2b9782b00", "rel": "self"}, {"href": "http://localhost/deploy_templates/21beeee0-68e6-413a-91d9-f5a2b9782b00", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.067615s] ... 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-c609885e-6001-4f6e-9116-2ddb20b69bfa 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.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.169563s] ... 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-d1d77e11-5ddd-4719-867b-f10c2f1ef6db 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": "2024-09-05T08:47:38.396393+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-53baa72f-31bf-4c82-8f5a-da697527869b 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": "2024-09-05T08:47:38.396393+00:00", "updated_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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.040722s] ... 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-376ced18-9895-49a5-90f8-36f0df09a9ce 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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.050354s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/81c9ca93-d771-4f7e-a877-e7dda3f8a9ff WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f763dc52-295c-4966-aea4-d68a7a4c7bd2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "81c9ca93-d771-4f7e-a877-e7dda3f8a9ff", "created_at": "2024-09-05T08:47:38.411462+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/81c9ca93-d771-4f7e-a877-e7dda3f8a9ff", "rel": "self"}, {"href": "http://localhost/deploy_templates/81c9ca93-d771-4f7e-a877-e7dda3f8a9ff", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.099672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8e4644f-1101-4ef0-83fa-3edde8df5877 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": "afc27837-fa9e-428a-bf43-405056f6050d", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/afc27837-fa9e-428a-bf43-405056f6050d", "rel": "self"}, {"href": "http://localhost/chassis/afc27837-fa9e-428a-bf43-405056f6050d", "rel": "bookmark"}]}, {"uuid": "a730ac0b-a751-4a06-bef7-41a5f58b5f73", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/a730ac0b-a751-4a06-bef7-41a5f58b5f73", "rel": "self"}, {"href": "http://localhost/chassis/a730ac0b-a751-4a06-bef7-41a5f58b5f73", "rel": "bookmark"}]}, {"uuid": "318e2b5e-0f8c-4da8-b073-e131317f00d0", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/318e2b5e-0f8c-4da8-b073-e131317f00d0", "rel": "self"}, {"href": "http://localhost/chassis/318e2b5e-0f8c-4da8-b073-e131317f00d0", "rel": "bookmark"}]}, {"uuid": "04020241-bf7e-4910-a63b-af79431b4387", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/04020241-bf7e-4910-a63b-af79431b4387", "rel": "self"}, {"href": "http://localhost/chassis/04020241-bf7e-4910-a63b-af79431b4387", "rel": "bookmark"}]}, {"uuid": "6c51c813-d71d-4ee5-90f0-30cd81402211", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/6c51c813-d71d-4ee5-90f0-30cd81402211", "rel": "self"}, {"href": "http://localhost/chassis/6c51c813-d71d-4ee5-90f0-30cd81402211", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.044987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15173d95-a3c3-4cd7-8a07-f91220b94a01 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "created_at": "2024-09-05T08:47:38.449586+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "rel": "self"}, {"href": "http://localhost/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-572f3942-173e-46d3-8952-f8ad2577b6b8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "created_at": "2024-09-05T08:47:38.449586+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "rel": "self"}, {"href": "http://localhost/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1445c56-0122-4775-99ea-1733c97a013e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "created_at": "2024-09-05T08:47:38.449586+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "rel": "self"}, {"href": "http://localhost/deploy_templates/bf73b5f1-152a-4bb6-b114-359fcd9e7e2d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.090966s] ... 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-8752514c-3ca6-4fe9-8a82-32d9e38573b9 X-Openstack-Ironic-Api-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_create_node_default_state_none [0.119486s] ... 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-b3b031b7-59e3-45e1-8539-386dfdfbd4b6 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": "2024-09-05T08:47:38.504451+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-3fc755ab-6b0e-47da-9dcc-4896c04a760b 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": "2024-09-05T08:47:38.504451+00:00", "updated_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-32c35c8a-d52d-4548-97c7-b5adfede0711 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": "2024-09-05T08:47:38.504451+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_port.TestPost.test_create_port_invalid_physnet_non_text [0.042414s] ... 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-04291b75-109b-4ae3-bc54-c81c8458978a X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.091595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d20b6f0f-9124-45a5-9e10-5d7cb3f36b52 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": "dff23879-c77d-4afd-8b94-3f4eac7ce052", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/dff23879-c77d-4afd-8b94-3f4eac7ce052", "rel": "self"}, {"href": "http://localhost/deploy_templates/dff23879-c77d-4afd-8b94-3f4eac7ce052", "rel": "bookmark"}]}, {"uuid": "28e2fe02-88ee-4784-aa67-d1a582412f07", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/28e2fe02-88ee-4784-aa67-d1a582412f07", "rel": "self"}, {"href": "http://localhost/deploy_templates/28e2fe02-88ee-4784-aa67-d1a582412f07", "rel": "bookmark"}]}, {"uuid": "a526892f-2755-4a91-8f75-8516de4a22b7", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/a526892f-2755-4a91-8f75-8516de4a22b7", "rel": "self"}, {"href": "http://localhost/deploy_templates/a526892f-2755-4a91-8f75-8516de4a22b7", "rel": "bookmark"}]}, {"uuid": "93ee2ff9-33a2-4c71-8240-c5a439b5a481", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/93ee2ff9-33a2-4c71-8240-c5a439b5a481", "rel": "self"}, {"href": "http://localhost/deploy_templates/93ee2ff9-33a2-4c71-8240-c5a439b5a481", "rel": "bookmark"}]}, {"uuid": "2bbbcc17-8698-4448-b87c-c5152071e133", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/2bbbcc17-8698-4448-b87c-c5152071e133", "rel": "self"}, {"href": "http://localhost/deploy_templates/2bbbcc17-8698-4448-b87c-c5152071e133", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.046546s] ... 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-a447f002-e529-4ead-8775-8132dd9cb040 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.062462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fda32379-5f58-482d-be89-c832ad926389 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": "3edee98f-c45e-4f9b-8da0-fe84a9a77d2d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/3edee98f-c45e-4f9b-8da0-fe84a9a77d2d", "rel": "self"}, {"href": "http://localhost/deploy_templates/3edee98f-c45e-4f9b-8da0-fe84a9a77d2d", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.108415s] ... 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-6c74e81c-e777-4004-9eb0-9356b189935c 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": "2024-09-05T08:47:38.624298+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-ab261363-1ae4-4c05-b2fd-87f650a5a2e3 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": "2024-09-05T08:47:38.624298+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.191461s] ... 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-57f22a2c-bd9a-4dac-a522-e914ee8d5acd 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": "ec1156b7-919a-4d0d-bfca-bc6f41d80ba0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ec1156b7-919a-4d0d-bfca-bc6f41d80ba0", "rel": "self"}, {"href": "http://localhost/nodes/ec1156b7-919a-4d0d-bfca-bc6f41d80ba0", "rel": "bookmark"}]}, {"uuid": "3dfeb598-e00b-4990-9255-10cd9fa7ba8d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3dfeb598-e00b-4990-9255-10cd9fa7ba8d", "rel": "self"}, {"href": "http://localhost/nodes/3dfeb598-e00b-4990-9255-10cd9fa7ba8d", "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-f3d82111-84fa-42d2-bd60-830eab86e679 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": "ec1156b7-919a-4d0d-bfca-bc6f41d80ba0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ec1156b7-919a-4d0d-bfca-bc6f41d80ba0", "rel": "self"}, {"href": "http://localhost/nodes/ec1156b7-919a-4d0d-bfca-bc6f41d80ba0", "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=ec1156b7-919a-4d0d-bfca-bc6f41d80ba0"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.072358s] ... 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-3cb1eb4e-4863-4b1f-b38e-a34cda32c06a 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": "2024-09-05T08:47:38.665360+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"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.059010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/c90a8225-0961-4ce1-87ed-b7a9e4a15d7a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b485fcc-6913-4f91-98c6-a5e094fa9251 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c90a8225-0961-4ce1-87ed-b7a9e4a15d7a", "created_at": "2024-09-05T08:47:38.684632+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c90a8225-0961-4ce1-87ed-b7a9e4a15d7a", "rel": "self"}, {"href": "http://localhost/deploy_templates/c90a8225-0961-4ce1-87ed-b7a9e4a15d7a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.041363s] ... 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-7e5f432a-5d9a-488a-a41e-c71ac5e4d662 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_node.TestPost.test_create_node_description_oversize [0.064004s] ... 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-37b05e6a-08ce-4b68-abda-d72fa5bf5095 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.047065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-365bfd0f-7317-4448-ba65-5bbbbda19732 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": "1058d798-4c6b-413b-8647-12f808639826", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/1058d798-4c6b-413b-8647-12f808639826", "rel": "self"}, {"href": "http://localhost/deploy_templates/1058d798-4c6b-413b-8647-12f808639826", "rel": "bookmark"}]}, {"uuid": "de6b4328-b8c0-4e60-bcf4-88293aacc398", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/de6b4328-b8c0-4e60-bcf4-88293aacc398", "rel": "self"}, {"href": "http://localhost/deploy_templates/de6b4328-b8c0-4e60-bcf4-88293aacc398", "rel": "bookmark"}]}, {"uuid": "f214ec02-bd75-4eba-ab4e-d360d022db4e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f214ec02-bd75-4eba-ab4e-d360d022db4e", "rel": "self"}, {"href": "http://localhost/deploy_templates/f214ec02-bd75-4eba-ab4e-d360d022db4e", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.048162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52108448-c9c2-448d-bb3f-04f589fee71c 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": "2024-09-05T08:47:38.731082+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_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.073241s] ... 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-ef0a970a-3a52-46b6-9b0b-9bd6c864048b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.043021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d2c5c541-e6f5-4343-9443-1542f2cd945a 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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.058743s] ... 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-7e01dadb-f8d3-4535-840b-9923b3b0d852 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": "d780722c-db81-4562-baba-3f25d44dcf67", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d780722c-db81-4562-baba-3f25d44dcf67", "rel": "self"}, {"href": "http://localhost/deploy_templates/d780722c-db81-4562-baba-3f25d44dcf67", "rel": "bookmark"}]}, {"uuid": "a57d7323-41f1-47ae-ab23-91dc6d068394", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/a57d7323-41f1-47ae-ab23-91dc6d068394", "rel": "self"}, {"href": "http://localhost/deploy_templates/a57d7323-41f1-47ae-ab23-91dc6d068394", "rel": "bookmark"}]}, {"uuid": "8862258b-ebb3-46ce-913a-e3d5d40d8bcc", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/8862258b-ebb3-46ce-913a-e3d5d40d8bcc", "rel": "self"}, {"href": "http://localhost/deploy_templates/8862258b-ebb3-46ce-913a-e3d5d40d8bcc", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.117708s] ... 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-e0177ae9-6369-417c-8dd2-17c71ae8c554 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": "2024-09-05T08:47:38.813961+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-80a2c6e7-0a1f-4546-8c1f-cd53f2ffb33b 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": "2024-09-05T08:47:38.813961+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.051023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-200685bc-e4b3-4fd2-93c7-d8e19c730de5 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.049620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-85b74231-e937-48e4-8be3-ebed9abda83e X-Openstack-Ironic-Api-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-1fcd2d42-4758-4050-8e95-eae57315bda7 X-Openstack-Ironic-Api-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-05d15588-b907-4e03-b948-589eb39798db X-Openstack-Ironic-Api-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_port.TestPost.test_create_port_local_link_connection_missing_optional [0.115015s] ... 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-cb3cd916-3422-4f52-a793-ac5901b00dbe 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": "2024-09-05T08:47:38.855627+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"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.037539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a352bc1-4f1e-4ee2-8eaa-bec995e8c801 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": "217a4935-a76c-49c0-a23a-c78ae8af8016", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/217a4935-a76c-49c0-a23a-c78ae8af8016", "rel": "self"}, {"href": "http://localhost/chassis/217a4935-a76c-49c0-a23a-c78ae8af8016", "rel": "bookmark"}]}, {"uuid": "80f1f6b3-10ca-4b72-9de8-e2771063487a", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/80f1f6b3-10ca-4b72-9de8-e2771063487a", "rel": "self"}, {"href": "http://localhost/chassis/80f1f6b3-10ca-4b72-9de8-e2771063487a", "rel": "bookmark"}]}, {"uuid": "fd4d11a4-69f2-4e4e-aafe-c4854acd1f50", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/fd4d11a4-69f2-4e4e-aafe-c4854acd1f50", "rel": "self"}, {"href": "http://localhost/chassis/fd4d11a4-69f2-4e4e-aafe-c4854acd1f50", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.032693s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8f2df489-54dd-4c6a-9f20-93910be6e434 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-74628353-0e53-4b2d-9d5d-fef95486425f 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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.072537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'ffdfc50f-0a3a-4ad5-886b-48092ca49dd0', '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/ffdfc50f-0a3a-4ad5-886b-48092ca49dd0 Openstack-Request-Id: req-d0ce0aca-8786-47e4-9b2b-547fe98df6b2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ffdfc50f-0a3a-4ad5-886b-48092ca49dd0", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ffdfc50f-0a3a-4ad5-886b-48092ca49dd0", "rel": "self"}, {"href": "http://localhost/deploy_templates/ffdfc50f-0a3a-4ad5-886b-48092ca49dd0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/ffdfc50f-0a3a-4ad5-886b-48092ca49dd0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b361a3ae-6674-46df-948e-41a2c5abf92e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ffdfc50f-0a3a-4ad5-886b-48092ca49dd0", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ffdfc50f-0a3a-4ad5-886b-48092ca49dd0", "rel": "self"}, {"href": "http://localhost/deploy_templates/ffdfc50f-0a3a-4ad5-886b-48092ca49dd0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_default_conductor_group [0.110900s] ... 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-76b54f1f-d2a8-4dfb-9d38-115cb09d7f15 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": "2024-09-05T08:47:38.911251+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-5ae692b3-5b27-48be-a2f5-9f2def0d78e1 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": "2024-09-05T08:47:38.911251+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_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.099348s] ... 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-f04e8819-3286-4112-8c21-a30c55416e71 X-Openstack-Ironic-Api-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.controllers.v1.test_chassis.TestPatch.test_add_multi [0.055770s] ... 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-2040959b-19f3-4162-acfe-adaeab02166d 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": "2024-09-05T08:47:38.952501+00:00", "updated_at": "2024-09-05T08:47:38.968573+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-08f44db2-92b3-460c-8f63-614a7246e601 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": "2024-09-05T08:47:38.952501+00:00", "updated_at": "2024-09-05T08:47:38.968573+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.054072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'ec4458f7-5136-42e1-8a1f-edccde0b1e7b', '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/ec4458f7-5136-42e1-8a1f-edccde0b1e7b Openstack-Request-Id: req-75c06ec4-661d-4000-a8fc-07e0e24f301a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ec4458f7-5136-42e1-8a1f-edccde0b1e7b", "created_at": "2024-09-05T08:47:38.980304+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ec4458f7-5136-42e1-8a1f-edccde0b1e7b", "rel": "self"}, {"href": "http://localhost/deploy_templates/ec4458f7-5136-42e1-8a1f-edccde0b1e7b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.051608s] ... 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-80937e0e-fcc9-440a-8516-eb15c67e728e 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": "2024-09-05T08:47:39.010102+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_chassis.TestPatch.test_add_root [0.040560s] ... 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-e4a9d884-9b63-4951-b6f7-fb3aecae6262 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": "2024-09-05T08:47:39.004423+00:00", "updated_at": "2024-09-05T08:47:39.015689+00:00", "description": "test", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.066353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '81d108cb-6b4b-43d4-91a6-97de1d12545a', '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/81d108cb-6b4b-43d4-91a6-97de1d12545a Openstack-Request-Id: req-2c0587db-2248-40b8-a892-7aebb762372e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "81d108cb-6b4b-43d4-91a6-97de1d12545a", "created_at": "2024-09-05T08:47:39.033258+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/81d108cb-6b4b-43d4-91a6-97de1d12545a", "rel": "self"}, {"href": "http://localhost/deploy_templates/81d108cb-6b4b-43d4-91a6-97de1d12545a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/81d108cb-6b4b-43d4-91a6-97de1d12545a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4664c7aa-0135-487a-9f6e-6d9d74f906f0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "81d108cb-6b4b-43d4-91a6-97de1d12545a", "created_at": "2024-09-05T08:47:39.033258+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/81d108cb-6b4b-43d4-91a6-97de1d12545a", "rel": "self"}, {"href": "http://localhost/deploy_templates/81d108cb-6b4b-43d4-91a6-97de1d12545a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.120338s] ... 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-1702a74c-540f-4219-9e14-80a5d73d272c 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-b6461493-cbfc-4581-819c-072f8db462ba 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.049393s] ... 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-4b8f0d34-0623-49e9-851d-c7a816158cb3 X-Openstack-Ironic-Api-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.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.054647s] ... 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-d0bdec8a-6446-49d9-8151-caadf4ade3a5 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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.052065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '3315b2f8-c7f2-43b6-823f-3a23beb34916', '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-02b84f4d-411f-4b93-939a-bce0d094ef65 X-Openstack-Ironic-Api-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_chassis.TestPatch.test_patch_nodes_subresource [0.033022s] ... 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-f7523788-a938-4150-8a05-162a2c7eecb1 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_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.048247s] ... 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-998a2cc1-1e45-410e-9ab2-12079b84127c 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.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.086979s] ... 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-4f7262e2-d3cc-488d-95e0-37316bb43fc4 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": "2024-09-05T08:47:39.136355+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-8193fd4a-b253-4306-b259-d24f40ac44fd 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": "2024-09-05T08:47:39.136355+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_deploy_template.TestPost.test_create_generate_uuid [0.057662s] ... 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/1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6 Openstack-Request-Id: req-313255aa-12eb-4063-8133-7727a560e82d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6", "created_at": "2024-09-05T08:47:39.151605+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6", "rel": "self"}, {"href": "http://localhost/deploy_templates/1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75e08a01-124a-4bd1-b0b4-246600b4338d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6", "created_at": "2024-09-05T08:47:39.151605+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6", "rel": "self"}, {"href": "http://localhost/deploy_templates/1b9fc56a-f81e-4d11-a4ec-1d9979a0d2d6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.062534s] ... 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-fb6dc27a-6645-4f3c-b3e6-5086e8853d18 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}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.071024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e33fb50-7713-43a8-ad65-f8589688d68d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3ff7159e-430b-4be6-9ef5-b0c362c752a7", "created_at": "2024-09-05T08:47:39.138130+00:00", "updated_at": "2024-09-05T08:47:39.148648+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "bookmark"}]]} GET /v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90509ad9-b589-4091-bdc2-5b41b5d0664d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3ff7159e-430b-4be6-9ef5-b0c362c752a7", "created_at": "2024-09-05T08:47:39.138130+00:00", "updated_at": "2024-09-05T08:47:39.148648+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "bookmark"}]]} PATCH /v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-235526ca-ae30-4b83-b9b9-6d57ae577ece X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3ff7159e-430b-4be6-9ef5-b0c362c752a7", "created_at": "2024-09-05T08:47:39.138130+00:00", "updated_at": "2024-09-05T08:47:39.170115+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "bookmark"}]]} GET /v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7f6cc75-0cdc-49b8-a6e0-e0e9f3e091bb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3ff7159e-430b-4be6-9ef5-b0c362c752a7", "created_at": "2024-09-05T08:47:39.138130+00:00", "updated_at": "2024-09-05T08:47:39.170115+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3ff7159e-430b-4be6-9ef5-b0c362c752a7/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.062766s] ... 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-462e5446-103b-4071-8937-1c4b79061bb1 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.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.079926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b9fa909a-79bd-41bb-a9f4-ff7c7d0fd810', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.075903s] ... 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-d58c9538-e0f8-4f2a-8f1d-beef6ea39807 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": "2024-09-05T08:47:39.249726+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.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.129598s] ... 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-d26a3454-bce2-4775-adb1-4ad0fb215e0f 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-3ec25896-fa0a-4c51-8f42-388a373366d9 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.079573s] ... 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-ce052323-14c4-4ec6-88e3-7aeb1dfedf14 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": "2024-09-05T08:47:39.328125+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.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.094341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/11226650-259b-42b2-9f4e-20c227851f50 WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-665dc4c9-59ca-41c9-b666-e7376b59a179 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "11226650-259b-42b2-9f4e-20c227851f50", "created_at": "2024-09-05T08:47:39.306348+00:00", "updated_at": "2024-09-05T08:47:39.332179+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/11226650-259b-42b2-9f4e-20c227851f50", "rel": "self"}, {"href": "http://localhost/chassis/11226650-259b-42b2-9f4e-20c227851f50", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/11226650-259b-42b2-9f4e-20c227851f50/nodes", "rel": "self"}, {"href": "http://localhost/chassis/11226650-259b-42b2-9f4e-20c227851f50/nodes", "rel": "bookmark"}]]} GET /v1/chassis/11226650-259b-42b2-9f4e-20c227851f50 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71a698a9-e300-44c9-bb49-2ee12b9425ba X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "11226650-259b-42b2-9f4e-20c227851f50", "created_at": "2024-09-05T08:47:39.306348+00:00", "updated_at": "2024-09-05T08:47:39.332179+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/11226650-259b-42b2-9f4e-20c227851f50", "rel": "self"}, {"href": "http://localhost/chassis/11226650-259b-42b2-9f4e-20c227851f50", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/11226650-259b-42b2-9f4e-20c227851f50/nodes", "rel": "self"}, {"href": "http://localhost/chassis/11226650-259b-42b2-9f4e-20c227851f50/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.107037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'e9a8b892-dbb7-4368-b321-de79cf4cdd55', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cab03f72-7ea5-4947-bc53-98f8a54d161d X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.086707s] ... 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-f0f9bcaf-8bd7-4fe6-989e-61172b2639a6 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.044515s] ... 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-05f57597-d006-4916-8420-fd9665aa0ebf 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.083735s] ... 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-96d3c4b9-07af-44c9-b244-b92bbd5ae689 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": "2024-09-05T08:47:39.412428+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.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.059630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ad21cdd-5a1d-404a-831f-aa30186b446c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e6701fd6-22ce-4073-8c5c-38a77e622a52", "created_at": "2024-09-05T08:47:39.420682+00:00", "updated_at": "2024-09-05T08:47:39.438352+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52", "rel": "self"}, {"href": "http://localhost/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff1249d5-bec3-4b21-b6e7-926a2979c481 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e6701fd6-22ce-4073-8c5c-38a77e622a52", "created_at": "2024-09-05T08:47:39.420682+00:00", "updated_at": "2024-09-05T08:47:39.438352+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52", "rel": "self"}, {"href": "http://localhost/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e6701fd6-22ce-4073-8c5c-38a77e622a52/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.075326s] ... 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-2f0cfc24-7159-406e-8a3e-2635c2f3f8c1 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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.105030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '8c76b132-5b1c-4ed6-a29a-2592ee63f7c5', '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-be609ad1-cc4e-4505-8650-199b1cc3af2c X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.051663s] ... 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-826ace5c-5fde-4e00-aa7b-0c223c5bf7b4 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": "2024-09-05T08:47:39.484125+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-15eefda5-a943-4289-a342-3fd538db40f9 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": "2024-09-05T08:47:39.484125+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_port.TestPost.test_create_port_novif_pxe_noportgroup [0.110882s] ... 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-977df0e9-116a-44db-aa13-fe73e95efa7e 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": "2024-09-05T08:47:39.525927+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} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.079649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '2b60b406-5c49-4299-8666-c297a08af420', '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-e60fd57b-ba09-42dc-b8be-0d553a143ca2 X-Openstack-Ironic-Api-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_chassis.TestPatch.test_update_error [0.041671s] ... 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-263e5a31-a2a5-4313-b6e5-3aa70e86a91f 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_node.TestPost.test_create_node_invalid_driver [0.093671s] ... 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-02784d7d-3924-4f90-bd23-f88312b711df 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_chassis.TestPatch.test_update_not_found [0.036062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/81ea7044-8c15-402a-8ad9-479f863047ce WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-06b007c1-e000-44dc-8cd7-3e023e6c6f06 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 81ea7044-8c15-402a-8ad9-479f863047ce could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.053167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 42, 'uuid': 'ddc88b1a-905c-42a1-a20c-00b19bade449', '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-faaa8655-68f8-470c-a37a-1cf55cedb413 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.087163s] ... 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-bcc035bd-0482-4f9b-be6e-7384b7853a92 X-Openstack-Ironic-Api-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.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.055840s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0353ca95-a1e3-4d0c-b88b-6d7b8533abd5 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": "e75796d1-37d5-4913-a695-3644f2095e33", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e75796d1-37d5-4913-a695-3644f2095e33", "rel": "self"}, {"href": "http://localhost/conductors/e75796d1-37d5-4913-a695-3644f2095e33", "rel": "bookmark"}], "alive": true}, {"hostname": "682a856e-4153-4c15-bce3-5cf441936ed0", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/682a856e-4153-4c15-bce3-5cf441936ed0", "rel": "self"}, {"href": "http://localhost/conductors/682a856e-4153-4c15-bce3-5cf441936ed0", "rel": "bookmark"}], "alive": true}, {"hostname": "e984875d-a1b2-4c6b-8473-f2494b223343", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e984875d-a1b2-4c6b-8473-f2494b223343", "rel": "self"}, {"href": "http://localhost/conductors/e984875d-a1b2-4c6b-8473-f2494b223343", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=e984875d-a1b2-4c6b-8473-f2494b223343"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.095797s] ... 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-c4bedda8-8dec-4c89-9156-49cf68e6d44d X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.052608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': None, 'uuid': 'd218c55a-8cd0-4cf8-8438-19a2f8a983ae', '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-fb41abac-cb0e-4e96-8787-a4553e670bbc X-Openstack-Ironic-Api-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_conductor.TestListConductors.test_collection_links_custom_fields [0.040403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07c2f2b2-c0f9-4f26-90bf-58c0ef450a83 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": "787930b2-2950-41f4-b99d-9d3f9db69b4f", "links": [{"href": "http://localhost/v1/conductors/787930b2-2950-41f4-b99d-9d3f9db69b4f", "rel": "self"}, {"href": "http://localhost/conductors/787930b2-2950-41f4-b99d-9d3f9db69b4f", "rel": "bookmark"}], "alive": true}, {"hostname": "04da1c4d-5fca-4a33-bb06-446fbd99671e", "links": [{"href": "http://localhost/v1/conductors/04da1c4d-5fca-4a33-bb06-446fbd99671e", "rel": "self"}, {"href": "http://localhost/conductors/04da1c4d-5fca-4a33-bb06-446fbd99671e", "rel": "bookmark"}], "alive": true}, {"hostname": "684c22a9-8bdc-44ed-b75f-2182a45bd1a5", "links": [{"href": "http://localhost/v1/conductors/684c22a9-8bdc-44ed-b75f-2182a45bd1a5", "rel": "self"}, {"href": "http://localhost/conductors/684c22a9-8bdc-44ed-b75f-2182a45bd1a5", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=684c22a9-8bdc-44ed-b75f-2182a45bd1a5"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.075162s] ... 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-42a6ebd5-f274-49b7-986f-54860dd92b9c 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": "2024-09-05T08:47:39.687241+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.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.038863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '8c286da2-76f6-42d9-aeef-16f6dfa7a34c', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eea75bb1-10a3-40c6-9e23-a4643e0958d4 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.039719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-25893422-f01b-4a1b-b6ee-7248c2399be6 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": "7b830788-45b1-45ef-950c-43099b861742", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/7b830788-45b1-45ef-950c-43099b861742", "rel": "self"}, {"href": "http://localhost/conductors/7b830788-45b1-45ef-950c-43099b861742", "rel": "bookmark"}], "alive": true}, {"hostname": "04e0165e-d654-45ec-8081-fa92b80b0352", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/04e0165e-d654-45ec-8081-fa92b80b0352", "rel": "self"}, {"href": "http://localhost/conductors/04e0165e-d654-45ec-8081-fa92b80b0352", "rel": "bookmark"}], "alive": true}, {"hostname": "6ea88954-417a-441b-a665-e5d22b441345", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/6ea88954-417a-441b-a665-e5d22b441345", "rel": "self"}, {"href": "http://localhost/conductors/6ea88954-417a-441b-a665-e5d22b441345", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=6ea88954-417a-441b-a665-e5d22b441345"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.050764s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '0b91e484-1506-43ee-8c98-f9c8cce78adb', '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-359a088d-2a9b-4e9a-8bfc-7023357d5f51 X-Openstack-Ironic-Api-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_conductor.TestListConductors.test_empty [0.046444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a08ae561-b55c-493b-9034-95da2236cd2c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"conductors": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.135259s] ... 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-ad4a7413-bae2-4c7b-998d-5fd18e1a8859 X-Openstack-Ironic-Api-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_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.052682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '67639557-68e5-40d8-be87-5bea74134942', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67ab5c99-2df0-4192-a90c-48791b2d4eca X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.037439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa6b795e-cfc6-48d6-8828-06b75a5d90f4 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}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.043080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '7953ea84-0231-4eed-85fc-feb85eb613ac', '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-dd78de06-1d3d-40a2-ba8d-91fabe5e2698 X-Openstack-Ironic-Api-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_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.035719s] ... 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-85062a4c-dcca-420e-a304-5e499bd9692d X-Openstack-Ironic-Api-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_port.TestPost.test_create_port_portgroup [0.181295s] ... 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-d569611d-f4e0-4e49-836d-93a2312ea50a 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": "2024-09-05T08:47:39.856658+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.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.108689s] ... 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-62c401d1-7269-46ad-9028-a84b724ca4a7 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": "2024-09-05T08:47:39.871494+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-3589e837-9f2b-49d1-98ea-7c2ffac72322 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": "2024-09-05T08:47:39.871494+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.048540s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83218079-2331-4a49-9e42-a7c35a78eeee 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": "2024-09-05T08:47:39.883833+00:00", "updated_at": "2024-09-05T08:47:39.883600+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.079402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'aaea29e7-e8ad-4673-93d0-472f584eda35', '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-76316d10-b35f-4215-897d-f6f95693ea86 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.081000s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': 'c32c2dc6-4f45-43d8-916b-d225a26ba680', '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-46f3aafa-2462-401a-8b60-ac70b252d4fc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node c32c2dc6-4f45-43d8-916b-d225a26ba680 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version [0.068441s] ... 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-8e5a4a56-8161-4391-a5c5-43e03b9e1b48 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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline [0.073187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cf4a844-e4d6-41b1-8d45-dd65a266d498 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} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.056549s] ... 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-aa50aad1-32aa-49d6-a53b-dbbf2038b1f4 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.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.097335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '8d8d26fc-e4b6-407f-979d-9e977f769802', '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-9cd6bfeb-6d08-480c-9f04-cb9a62dcabcd X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_name_empty_invalid [0.075315s] ... 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-8219fb79-74d4-40e8-a630-e41663d28b1e 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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.084991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-001c3982-4a94-4be5-ad05-b81dadf1e569 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} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.088889s] ... 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-c3ac418e-99d3-4cdb-ae5e-c94332c4acbb X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.080681s] ... 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-089ea7d4-12ec-4af1-8020-683463a63ab0 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_conductor.TestListConductors.test_get_one_with_invalid_api [0.069478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-96dd47c0-1693-4bd6-be45-fcb16442e93b 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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.149636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '2c161f3c-3f87-469d-b57e-161ff914c672', '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-1697d085-395d-4ac9-b612-b287d05fb397 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.067252s] ... 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-bf26f326-8330-48ee-b05d-bfff06322754 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_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.086170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dfaffd73-ade8-4e15-9712-0d01ab722474 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": "2024-09-05T08:47:40.206307+00:00", "updated_at": "2024-09-05T08:47:40.204942+00:00", "hostname": "[::1]:8090", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/[::1]:8090", "rel": "self"}, {"href": "http://localhost/conductors/[::1]:8090", "rel": "bookmark"}], "alive": true} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.069943s] ... 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-e3b1ce75-3e09-4d74-a65f-5363072b14ba X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.126141s] ... 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-56090f21-4140-42b6-beb7-10f095f0ed51 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": "2024-09-05T08:47:40.229075+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-15c45b03-cec1-4833-83a8-05df1adca309 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": "2024-09-05T08:47:40.229075+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_conductor.TestListConductors.test_links [0.053803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73c76dc0-92bb-4456-a7a6-a8548fa993f8 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": "2024-09-05T08:47:40.255386+00:00", "updated_at": "2024-09-05T08:47:40.255091+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-a340f1a4-bd5b-4e29-bc77-90604800c00a 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": "2024-09-05T08:47:40.255386+00:00", "updated_at": "2024-09-05T08:47:40.255091+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-59aa0044-95f0-4249-8135-37a2170077fb 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": "2024-09-05T08:47:40.255386+00:00", "updated_at": "2024-09-05T08:47:40.255091+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.104199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'c1a5fc8c-3b9f-4e78-ad39-e5e2fd8ae846', '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-d4858de0-fff6-4699-9ba7-9f672032f933 X-Openstack-Ironic-Api-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_conductor.TestListConductors.test_links_public_url [0.073403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-faa3d89b-2247-482e-bfcc-c391d8c8d0e1 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": "2024-09-05T08:47:40.333950+00:00", "updated_at": "2024-09-05T08:47:40.333656+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-6fe6c961-b330-4a01-808d-07cf2adef6f1 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": "2024-09-05T08:47:40.333950+00:00", "updated_at": "2024-09-05T08:47:40.333656+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-61c3f3ea-2284-4e4e-9c76-6fa824fb9345 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": "2024-09-05T08:47:40.333950+00:00", "updated_at": "2024-09-05T08:47:40.333656+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_node.TestPost.test_create_node_network_interface_old_api_version [0.101597s] ... 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-0d0dc9f4-f626-42ae-a041-e416aea5a964 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.TestPost.test_create_invalid_step_field_step [0.072237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '5deed050-d8cb-490c-a502-2c5dddc6c3fb', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2b09dc80-0a4b-4b8c-87ff-8b3452e2ab52 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.139616s] ... 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-cdd1099e-ec7c-4c64-87cb-047801cf37a2 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": "2024-09-05T08:47:40.345480+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-0b9a036d-073e-4875-82b0-1cb838b3017b 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": "2024-09-05T08:47:40.345480+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"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.037333s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-514cf444-d871-4e25-9b23-c4a91871512f 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}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.047192s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'bf175847-a604-4f95-8547-e61ee9f5b877', '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/bf175847-a604-4f95-8547-e61ee9f5b877 Openstack-Request-Id: req-5db5ee80-ddcf-4a02-94c7-4ffd15ff94db X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "bf175847-a604-4f95-8547-e61ee9f5b877", "created_at": "2024-09-05T08:47:40.397187+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bf175847-a604-4f95-8547-e61ee9f5b877", "rel": "self"}, {"href": "http://localhost/deploy_templates/bf175847-a604-4f95-8547-e61ee9f5b877", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.047920s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d18fabb2-d082-40fd-9f10-28cb677e779f 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": "2024-09-05T08:47:40.430399+00:00", "updated_at": "2024-09-05T08:47:40.429996+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": "2024-09-05T08:47:40.431974+00:00", "updated_at": "2024-09-05T08:47:40.431832+00:00", "hostname": "why not", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/why not", "rel": "self"}, {"href": "http://localhost/conductors/why not", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.058429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': 'da965fea-bd14-492b-8d9c-eb9d22957bc5', '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-8e7100aa-17c6-4202-976d-d20d62990d62 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.031077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a8db1574-8fdf-4bc6-ac8c-9267d7c14fa2 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.117127s] ... 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-e8e13457-2863-4698-8f92-35db0386088b 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": "2024-09-05T08:47:40.499692+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} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.044159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-720014fd-2d88-4121-b8bf-e20ca66959c1 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": "13497687-45d1-440c-8fe0-cad51c7cfdf1", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/13497687-45d1-440c-8fe0-cad51c7cfdf1", "rel": "self"}, {"href": "http://localhost/conductors/13497687-45d1-440c-8fe0-cad51c7cfdf1", "rel": "bookmark"}], "alive": true}, {"hostname": "51cc5c50-24d4-4dfc-b30d-726c40e3bf05", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/51cc5c50-24d4-4dfc-b30d-726c40e3bf05", "rel": "self"}, {"href": "http://localhost/conductors/51cc5c50-24d4-4dfc-b30d-726c40e3bf05", "rel": "bookmark"}], "alive": true}, {"hostname": "d0efdf57-1640-4949-b64d-6da08b797487", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/d0efdf57-1640-4949-b64d-6da08b797487", "rel": "self"}, {"href": "http://localhost/conductors/d0efdf57-1640-4949-b64d-6da08b797487", "rel": "bookmark"}], "alive": true}, {"hostname": "e6d5f9b5-35d3-4206-9797-81e1368d7033", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e6d5f9b5-35d3-4206-9797-81e1368d7033", "rel": "self"}, {"href": "http://localhost/conductors/e6d5f9b5-35d3-4206-9797-81e1368d7033", "rel": "bookmark"}], "alive": true}, {"hostname": "ec908376-14ef-4de9-8349-ecedb540aa7a", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/ec908376-14ef-4de9-8349-ecedb540aa7a", "rel": "self"}, {"href": "http://localhost/conductors/ec908376-14ef-4de9-8349-ecedb540aa7a", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.083420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'c89372ad-c182-4152-900d-37e92891cfb1', '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-a3e7cbe4-89f5-444c-b691-fe544787097b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.035803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f64ca1f-0d16-454e-808d-b02e4f676269 X-Openstack-Ironic-Api-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-308e7fec-7984-4d51-b86d-0cbe088e8856 X-Openstack-Ironic-Api-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_deploy_template.TestDelete.test_delete_by_name [0.041504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-1f66a0f2-46d1-403f-9ead-b29907a71c14 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_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.122911s] ... 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-62f2fb6e-71b4-4040-9570-a368e82ea87a 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": "2024-09-05T08:47:40.619378+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.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.041721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-95223d94-fe9a-45e4-9744-5b442ba59bdb X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.092307s] ... 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-a9172c65-08ac-46e7-a971-381d4d758595 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": "2024-09-05T08:47:40.715700+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} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.059816s] ... 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-ba405de9-fb62-46ff-949b-a70b414159e0 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.425015s] ... 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-70d09a54-93a3-495c-8ab7-aea7528f855a 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": "2024-09-05T08:47:40.772124+00:00", "updated_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_deploy_template.TestPost.test_create_no_mandatory_field_name [0.302907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'uuid': 'db2c25db-a689-4fcd-b8c1-2f9e438d4071', '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-8f2ed26e-94d0-41cd-a4c5-76f48a5b07f7 X-Openstack-Ironic-Api-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_deploy_template.TestDelete.test_delete_by_name_with_json [0.237667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content Openstack-Request-Id: req-6fcde738-09f8-4761-b1a8-2afc89755584 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_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.127995s] ... 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-281f7b7f-544d-47c6-a68f-71734dc2c9e8 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": "2024-09-05T08:47:40.894093+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.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.053540s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b6a0c748-fecd-47a3-b54e-fcd9f3d60845', 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a38878e1-2a55-46be-8edd-083bd583a052 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.045106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/1cacb9c6-ce19-45ca-a6d4-6b9846e4323e GOT Response: 204 No Content Openstack-Request-Id: req-fa41d912-7670-49f4-8fd4-f3e5dc404ab0 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.TestPost.test_create_node_no_default_resource_class [0.171364s] ... 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-e57dff45-9f6e-4765-a173-1643192d6d00 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": "2024-09-05T08:47:40.929706+00:00", "updated_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-d95f5185-000f-4b8f-9ebf-e8139a0da3c4 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": "2024-09-05T08:47:40.929706+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.056197s] ... 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-679809f7-2dda-4933-9284-51edc2c6337c 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.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.060763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '57216fd4-6da4-43cf-87c3-54c592e15a07', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0e3730fa-12d2-41d1-87e8-9fb353192b06 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.054587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/6a0ee1c1-6d18-4ee4-ad43-1622717dafc8.json GOT Response: 204 No Content Openstack-Request-Id: req-27622a43-08b2-48c7-9cd0-b6a7fdbbf66e 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_port.TestPost.test_create_port_with_internal_field [0.039809s] ... 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-6c2a1bb6-c35f-4acc-a891-e8b1876f6934 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.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.046421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'cf89aa56-b742-4bee-9e20-65014cfaf90e', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b066c56f-5f58-44f4-8ec3-41a8d6bd6bdb X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_no_mandatory_field_driver [0.073613s] ... 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-d72936d3-6d5a-46f4-bf75-83da39f399a6 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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.062545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/fc54da95-d6d0-4c0e-9230-663b41ffab13 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_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.068353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b041ef2a-0662-41fb-a3a7-47a7d7c9d297', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67dcb753-63be-4f60-93b4-b0b693d372d0 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.093737s] ... 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-226317aa-f650-425b-be28-2c19c5c7ec4c 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": "2024-09-05T08:47:41.093489+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"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.059120s] ... 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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.109586s] ... 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-268efac3-e875-4b4a-9447-136002978755 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": "2024-09-05T08:47:41.117873+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-0f42e3ad-a571-43f8-abbc-d46141def63d 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": "2024-09-05T08:47:41.117873+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.069301s] ... 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-01aaf31e-4238-4f1d-b0de-0b5c18e11ac6 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": "2024-09-05T08:47:41.162894+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.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.067426s] ... 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-d72fa2b2-7c48-413a-970b-f996a0e62531 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_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.100486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'fb686eb2-d052-41d2-b5d5-a3d49eac3fe7', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d44034d5-1620-4959-b9be-2722034ad102 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.130360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/469d5a08-ec4a-409b-b6db-912523f45bf5 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-27b15cf1-b87d-4d92-9532-3d09650d90ff X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "469d5a08-ec4a-409b-b6db-912523f45bf5", "created_at": "2024-09-05T08:47:41.171696+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/469d5a08-ec4a-409b-b6db-912523f45bf5", "rel": "self"}, {"href": "http://localhost/deploy_templates/469d5a08-ec4a-409b-b6db-912523f45bf5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.053692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '0c18b4a1-6909-4839-a7e8-960fd89008df', '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/0c18b4a1-6909-4839-a7e8-960fd89008df Openstack-Request-Id: req-b8b62e80-2acf-447b-a154-6b6345384c92 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0c18b4a1-6909-4839-a7e8-960fd89008df", "created_at": "2024-09-05T08:47:41.241530+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0c18b4a1-6909-4839-a7e8-960fd89008df", "rel": "self"}, {"href": "http://localhost/deploy_templates/0c18b4a1-6909-4839-a7e8-960fd89008df", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.041997s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/1a7c4be1-2d88-46dd-8984-ffdcb8a3fa0d WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ec16eb6e-ebb0-4a9f-9b79-b764a366b032 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.050339s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '65145f66-f37a-4696-9627-11a4f6cd19ce', '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/65145f66-f37a-4696-9627-11a4f6cd19ce Openstack-Request-Id: req-5557643c-350d-464d-9116-e08975e7f759 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "65145f66-f37a-4696-9627-11a4f6cd19ce", "created_at": "2024-09-05T08:47:41.293337+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/65145f66-f37a-4696-9627-11a4f6cd19ce", "rel": "self"}, {"href": "http://localhost/deploy_templates/65145f66-f37a-4696-9627-11a4f6cd19ce", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.035911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9a050a4d-81d2-4b6a-8636-21d8ba73cebb', '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-6cc18136-2f80-4761-8e0c-a81c2bb925e4 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.058807s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/7ade410b-9587-480c-8028-8df4b9e4a473 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-238e7a27-2a1e-4c4c-8f8e-8e9d3a5fe2a7 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope [0.142296s] ... 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-764d052b-6503-4654-9bc3-2a94a96d1e69 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": "2024-09-05T08:47:41.300284+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-ce6ac9c7-3046-458f-abfa-6e8e0f731388 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": "2024-09-05T08:47:41.300284+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_deploy_template.TestPatch.test_remove_foo [0.038233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/5e39ac1a-4c25-4687-9b65-c632d46d7f51 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-29033f90-8007-413e-9c47-bc154dec116e X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.058279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbfbbfca-cf3f-4db2-8884-edfc9597d6d7 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-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.036808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c82f62ae-4ebe-40f4-8448-be04f3ebbccd 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-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.065343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/5dfa3b66-c6d5-48b5-8fad-95f0ff661212 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0e85c70-121f-4b63-aff6-bd403cdfd40c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "5dfa3b66-c6d5-48b5-8fad-95f0ff661212", "created_at": "2024-09-05T08:47:41.411144+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5dfa3b66-c6d5-48b5-8fad-95f0ff661212", "rel": "self"}, {"href": "http://localhost/deploy_templates/5dfa3b66-c6d5-48b5-8fad-95f0ff661212", "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_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.290318s] ... 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-e01c22af-782f-44a0-a590-885edd61756c X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope [0.116944s] ... 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-343c889e-d1fd-4d4f-a7e0-77d10e76e724 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": "2024-09-05T08:47:41.448881+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-8b1a099b-673a-433a-8d62-2ce99f1e9d6a 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": "2024-09-05T08:47:41.448881+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_deploy_template.TestPatch.test_remove_name [0.048805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/c774a2c9-569e-4395-b40b-044e43189bcb WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-58c64f81-da29-45f8-ac08-e661b40767ef X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_driver_vendor_passthru_async [0.082624s] ... 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-dd891e76-488f-4078-acde-b892a2e21eaf 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_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.052917s] ... 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-57cee774-9bc1-412c-b334-7974b2272b06 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.043645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/c1613877-fe06-48f6-8123-43fc331b937b WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-350d3bac-95e8-40fb-80fe-f88bded53bf6 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.070224s] ... 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-a6ac2f0c-7f05-4ee6-a269-6824659a137a 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_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.049517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-fdc0c3db-45a8-48cf-a16e-48393dd51ec0 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_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.059298s] ... 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-3c97485d-6d52-49be-b367-87f316c454d9 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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.043870s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/84da3565-6513-4312-8e18-b98fe876af16 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eb0bb79e-02ba-46d9-845f-64925c575869 X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.032653s] ... 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-7edec3ff-2046-4d34-9d63-79222d1c20ba 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_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.044394s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/8a19be6e-a9fe-4e94-8ea8-3b807cc014df WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a63a16e-19c1-483a-9254-3f52384030bb X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.070451s] ... 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-dab60857-4780-427e-bc76-c6307a7e81de 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.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.048446s] ... 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-b5f6f1d6-658d-4735-b7c8-d4965fce7abe 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_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.028761s] ... 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-bfd99c4c-1de2-47a2-b32d-702150fda68c 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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.053531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/af1137c9-c723-41eb-9dfe-d53931935923 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-12785bef-b9d2-477a-889d-525f3ac28fbc X-Openstack-Ironic-Api-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_port.TestPost.test_create_port_with_network_type_in_llc [0.072017s] ... 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-fa7d114e-e14d-4f29-8ae6-d9013aae4074 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": "2024-09-05T08:47:41.712397+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"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.057350s] ... 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-247a0807-0b2e-4f6f-9cad-2b542cfc5475 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-7d39c44f-5afc-46b0-b35f-f60dd4f83656 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"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.194908s] ... 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-fbde8625-7835-4e35-a6a4-81b3df2717b6 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-fb335558-0e58-4d71-bd63-554f94794f27 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-07f5e69e-2ae7-4daa-9068-3e8a44da38c4 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-a2dfbd13-7289-4ee2-8641-cf841fab9984 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-d333977c-b1e8-4fce-a359-b02ecbe12e99 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-61d6094b-dc1d-44c3-941c-09f871e6e6e7 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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.077397s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/884fdbe1-1426-4e36-83e6-525b969efbb7 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6f4c0bd-51a3-4689-80c5-a37256d70174 X-Openstack-Ironic-Api-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_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.060286s] ... 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-a6bea32e-da98-467d-89d9-489e6ff4a8d1 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.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.057531s] ... 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-4cdff848-eee7-4d40-bff4-299a3d3972bc 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_deploy_template.TestPatch.test_remove_uuid [0.034180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/8d8a50ae-9da8-4844-af9b-584330b3569f WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33a3ab62-1149-445c-bba6-80bfceb0695a X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.059655s] ... 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-7040685b-685a-4c76-900d-2da748f05ccd 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_port.TestPost.test_create_port_with_physical_network [0.081873s] ... 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-a9045799-375d-4cde-bb16-cf45af3a4e9c 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": "2024-09-05T08:47:41.851975+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.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.063716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/9c19a468-050f-4eaf-a3f8-af08010a84eb 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-a3e70d0d-775b-4e2a-8a06-858c078cda4c X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.139616s] ... 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-5713955d-4681-49ae-bc06-f40e6ca64c8f 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": "2024-09-05T08:47:41.858098+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-2b1fd687-93ec-4ad3-abb1-c080e263244e 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": "2024-09-05T08:47:41.858098+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_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.050340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/292fb7bf-c3fb-4a3a-a15d-28d69eeb4302 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9c14cc32-1870-4980-b5fd-9d79d45dc5c2 X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_drivers [0.069197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8ae4b51e-b006-438d-bb33-9ffbc3fd1d12 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-host2", "fake-host1"], "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-3f5a7b49-eaa5-4a24-bd79-a472ffcde564 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-host2", "fake-host1"], "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-9e6cf15d-cab5-448d-9e13-be8d4fe343af 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-host2", "fake-host1"], "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-dce0dac8-ac94-4683-a8cf-1960147dd819 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-6517b68b-7459-4468-95bf-4ba1fe0aae2c 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_port.TestPost.test_create_port_with_physical_network_old_api_version [0.072471s] ... 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-d3839580-3b43-4173-9a10-e3e17eae6c68 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_create_node_resource_class_old_api_version [0.064210s] ... 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-5b55dbfa-90da-4844-b7a1-565f849c08f9 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_driver.TestListDrivers.test_drivers_collection_custom_fields [0.036655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-736af719-e6ad-403d-9070-268a5279e9e1 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-host2", "fake-host1"], "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_deploy_template.TestPatch.test_replace_invalid_name_none [0.062409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0396ab7f-3310-4f3a-976d-41390dafb867 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e651d05-0388-44dc-bb6e-bf5828aa7aa2 X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.040856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5724e158-b56f-4078-8956-5b9ec3b835d2 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-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.101543s] ... 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-2fc7cf6f-592f-4118-adf9-c1502fd36e40 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.089278s] ... 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-cf4cdba7-5877-4c3f-a8d3-9ab47987011c 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": "2024-09-05T08:47:42.024938+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-cdf7f36e-612b-4e24-95ae-0406b60e5b61 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": "2024-09-05T08:47:42.024938+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_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.061578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/694c3e00-6f54-49e6-938b-2bab84e62bb7 WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dada7819-44b1-4e55-a168-461cc6c9dc4c X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.045615s] ... 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-57568d8a-7405-49e3-be57-1181fee36b93 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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.051006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d743f0c-8525-41b5-ba26-ef0d7be24382 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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.068815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/604b9e5a-36b1-44ce-91ca-ebf9ad75d8e7 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8cd90aea-90b9-43d0-b1f0-fc3edd38a03d X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.081054s] ... 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-d550907f-2019-44ee-bc90-25c21316c82d 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.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.047872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6373432e-7fa1-496b-aefd-e48c3935e9d3 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_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.128800s] ... 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-72df7066-ec42-4f3a-b29d-8f1f7ad71331 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_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.056575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/65daa529-2271-48b6-bfa5-393bd3777f0e 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-400821b6-ef5f-4ed8-8fe8-97eadbf49fc3 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.030243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a98c3837-0133-4d70-a5f3-b0c6715bfec0 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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.044101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d0308208-0d02-467a-81c6-95b5d1db53ed 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}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.113280s] ... 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-8b5c0e52-d0e8-425d-945b-5437bba7d051 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": "2024-09-05T08:47:42.224177+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.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.089857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0cc9e3d4-d256-4222-a41b-74ac02d386d6 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-9a3e39fa-449f-49fa-8613-6ecc889daa33 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0cc9e3d4-d256-4222-a41b-74ac02d386d6", "created_at": "2024-09-05T08:47:42.207076+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0cc9e3d4-d256-4222-a41b-74ac02d386d6", "rel": "self"}, {"href": "http://localhost/deploy_templates/0cc9e3d4-d256-4222-a41b-74ac02d386d6", "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_port.TestPost.test_portgroups_subresource_post [0.063697s] ... 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-b66afd87-238f-4e96-b186-5fcaeddc7f9d 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.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.094556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15450dfc-82b2-4a61-b878-9fb62859996f 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-host2", "fake-host1"], "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_network_interface": null, "enabled_network_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": []} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-321e38b2-1300-4f6a-a8fd-8d9149ec7f48 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-host2", "fake-host1"], "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-fd992382-b9df-4753-9e66-bb42cbd62587 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-host2", "fake-host1"], "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_portgroup.TestDelete.test_delete_portgroup_byaddress [0.033687s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/52:54:00:cf:2d:31 GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.070176s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content Openstack-Request-Id: req-379312bd-a0e5-433c-a465-768383e19216 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_deploy_template.TestPatch.test_replace_name_already_exist [0.152093s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b9058e25-a631-4932-a13c-41aa912113a1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f42bc697-ed5c-4513-8477-9af12cc5c7fe X-Openstack-Ironic-Api-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 b9058e25-a631-4932-a13c-41aa912113a1 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.123854s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b03ba86-f703-4b1a-b93f-632aab641254 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-host2", "fake-host1"], "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_network_interface": null, "enabled_network_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_power_interface": null, "enabled_power_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1196c340-35c6-43e3-b266-9f0f6da9dada 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-host2", "fake-host1"], "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-73c0a133-f0c1-45eb-9258-c6355251ad12 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-host2", "fake-host1"], "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_portgroup.TestDelete.test_delete_portgroup_byname [0.092103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content Openstack-Request-Id: req-b38c0b50-be13-4fbb-b23a-6fbe9ba440df 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_driver.TestListDrivers.test_drivers_no_active_conductor [0.055452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8ae92580-a11c-4288-924d-cd2604d47b13 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"drivers": []} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.087871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/77eafada-99b5-4b37-9ca2-8bd5275c73d5 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-b1620cef-1feb-463b-9651-eb4414e55a8e X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.048682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/259ab2eb-5eca-49a6-a696-52df85c67328 WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-45c3de0c-431a-404b-a997-76342f8d0d56 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.068466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bcb411da-3fb8-4fae-bd61-606edf201e3f 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_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.094360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e9d1760e-d600-47e6-88fe-34c4dd4bf021 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.054739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f3a6628e-9a8e-403a-8d66-813a98b20808 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c26759e-ba08-4be7-8b9a-0f8e890ed37d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f3a6628e-9a8e-403a-8d66-813a98b20808", "created_at": "2024-09-05T08:47:42.588810+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f3a6628e-9a8e-403a-8d66-813a98b20808", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3a6628e-9a8e-403a-8d66-813a98b20808", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.050387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2acc3823-965d-430e-896a-45fcb5c9f871 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_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.044645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/42077ba6-3f07-4494-8266-4beb1cdb1457 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.087237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content Openstack-Request-Id: req-fbad4819-6727-4203-b1e2-5141e3be29f2 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_driver.TestListDrivers.test_drivers_type_filter_classic [0.072941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b1c5100-d2c3-441d-8449-8c3866241819 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": []} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.056042s] ... 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-f6d892ff-ff7c-424b-b172-1ddad78582ec X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "30c24578-8ee8-4c9d-8193-c8e0ae68f868", "created_at": "2024-09-05T08:47:42.695721+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/30c24578-8ee8-4c9d-8193-c8e0ae68f868", "rel": "self"}, {"href": "http://localhost/deploy_templates/30c24578-8ee8-4c9d-8193-c8e0ae68f868", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]} {3} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.076077s] ... 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.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.038953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.060052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4e531fe-fef8-44f8-b0c2-99f5a4ecba19 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-host2", "fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic"}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic"}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.052689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2cbce28-923e-4cc8-9f76-ee924d0a2eda 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-host2", "fake-host1"], "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-4fedc046-3b28-4809-88ab-c3db6759e16d 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-host2", "fake-host1"], "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-dcc25a69-0143-4993-a778-7b35e3aa20d7 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-host2", "fake-host1"], "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-b13d3e95-1b3c-4ecf-99f7-71af53e21cad 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-dda56dec-af1e-49d4-8d8a-cfe78457e714 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_deploy_template.TestPatch.test_update_by_name_with_json [0.068511s] ... 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-c2fad9d6-3493-411a-af3a-32b92c3fee44 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2cc759de-3f25-40c1-aa65-9e65f3fe411e", "created_at": "2024-09-05T08:47:42.806029+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2cc759de-3f25-40c1-aa65-9e65f3fe411e", "rel": "self"}, {"href": "http://localhost/deploy_templates/2cc759de-3f25-40c1-aa65-9e65f3fe411e", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [0.662621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '4a8c2db4-f3d9-49c6-9b3a-9debadc722fa', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa Openstack-Request-Id: req-b15f3bd1-b5de-4e9f-9e26-957c45927a9e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4a8c2db4-f3d9-49c6-9b3a-9debadc722fa", "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/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/ports", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/states", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/volume", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/volume", "rel": "bookmark"}]} GET /v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c18d623d-f2b1-4fc8-a367-e10d060a6e4e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4a8c2db4-f3d9-49c6-9b3a-9debadc722fa", "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/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/ports", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/states", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/volume", "rel": "self"}, {"href": "http://localhost/nodes/4a8c2db4-f3d9-49c6-9b3a-9debadc722fa/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '80c1485e-3f94-4ee5-873c-37bc202ad424', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/80c1485e-3f94-4ee5-873c-37bc202ad424 Openstack-Request-Id: req-7dd6896a-6e1c-4f9b-ada0-a4414657d0e6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "80c1485e-3f94-4ee5-873c-37bc202ad424", "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/80c1485e-3f94-4ee5-873c-37bc202ad424", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/ports", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c- 37bc202ad424/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/states", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/volume", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/volume", "rel": "bookmark"}]} GET /v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b83ce50-109e-4b05-8c22-5ace0e7feb61 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "80c1485e-3f94-4ee5-873c-37bc202ad424", "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/80c1485e-3f94-4ee5-873c-37bc202ad424", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/ports", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/states", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/volume", "rel": "self"}, {"href": "http://localhost/nodes/80c1485e-3f94-4ee5-873c-37bc202ad424/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '614d84fb-2365-499d-b07e-b8fdd95ed070', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/614d84fb-2365-499d-b07e-b8fdd95ed070 Openstack-Request-Id: req-5f6751bf-a151-45a9-a166-1eb03635d552 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": "614d84fb-2365-499d-b07e-b8fdd95ed070", "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/614d84fb-2365-499d-b07e-b8fdd95ed070", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/ports", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/states", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/volume", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/volume", "rel": "bookmark"}]} GET /v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3e1e114-e15d-4805-afea-6b21434e57ef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "614d84fb-2365-499d-b07e-b8fdd95ed070", "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/614d84fb-2365-499d-b07e-b8fdd95ed070", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/ nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/ports", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/states", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/volume", "rel": "self"}, {"href": "http://localhost/nodes/614d84fb-2365-499d-b07e-b8fdd95ed070/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '72519294-26cf-4ffa-a483-70241eb0aa75', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/72519294-26cf-4ffa-a483-70241eb0aa75 Openstack-Request-Id: req-7840d4ff-992d-4719-89ff-58d76c1a0767 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "72519294-26cf-4ffa-a483-70241eb0aa75", "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/72519294-26cf-4ffa-a483-70241eb0aa75", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/ports", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/states", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/volume", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/volume", "rel": "bookmark"}]} GET /v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1057abb- de51-4977-914d-e89e2c42564b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "72519294-26cf-4ffa-a483-70241eb0aa75", "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/72519294-26cf-4ffa-a483-70241eb0aa75", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/ports", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/states", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/volume", "rel": "self"}, {"href": "http://localhost/nodes/72519294-26cf-4ffa-a483-70241eb0aa75/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '6afae073-6fb4-43d9-aec0-eff458dab263', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/6afae073-6fb4-43d9-aec0-eff458dab263 Openstack-Request-Id: req-2c1ee8e8-9d86-44e4-abfc-f05226f6dd63 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "6afae073-6fb4-43d9-aec0-eff458dab263", "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/6afae073-6fb4-43d9-aec0-eff458dab263", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/ports", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/states", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/volume", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/volume", "rel": "bookmark"}]} GET /v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f59d968-09a4-48db-afc0-2a13dbf34c34 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "6afae073-6fb4-43d9-aec0-eff458dab263", "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/6afae073-6fb4-43d9-aec0-eff458dab263", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/ports", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/states", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/volume", "rel": "self"}, {"href": "http://localhost/nodes/6afae073-6fb4-43d9-aec0-eff458dab263/volume", "rel": "bookmark"}]} POST /v1/nodes WIT H {'uuid': '86afe57b-9693-4135-94e6-2a16bbefb283', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/86afe57b-9693-4135-94e6-2a16bbefb283 Openstack-Request-Id: req-ac8734ee-7705-4792-aebf-ea79a918522e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "86afe57b-9693-4135-94e6-2a16bbefb283", "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/86afe57b-9693-4135-94e6-2a16bbefb283", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/ports", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/states", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/volume", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/volume", "rel": "bookmark"}]} GET /v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d13eeed-35be-4934-9a29-ee43de19c051 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "86afe57b-9693-4135-94e6-2a16bbefb283", "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/86afe57b-9693-4135-94e6-2a16bbefb283", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/ports", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/states", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/volume", "rel": "self"}, {"href": "http://localhost/nodes/86afe57b-9693-4135-94e6-2a16bbefb283/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'de3ef87e-5495-4930-a15f-bac1b9f24055', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/de3ef87e-5495-4930-a15f-bac1b9f24055 Openstack-Request-Id: req-82219162-1261-46d3-8f88-f10a5d339873 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "de3ef87e-5495-4930-a15f-bac1b9f24055", "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/de3ef87e-5495-4930-a15f-bac1b9f24055", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/ports", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/states", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/volume", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/volume", "rel": "bookmark"}]} GET /v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c9cf967-4f63-4d4c-9b30-bd1fa6a71c1c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "de3ef87e-5495-4930-a15f-bac1b9f24055", "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/de3ef87e-5495-4930-a15f-bac1b9f24055", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/ports", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/states", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/volume", "rel": "self"}, {"href": "http://localhost/nodes/de3ef87e-5495-4930-a15f-bac1b9f24055/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'bfb7905e-1ecb-401d-ad83-8028c12b7b6a', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/bfb7905e-1ecb-401d-ad83-8028c12b7b6a Openstack-Request-Id: req-3e5a5add-a6cb-446d-96fa-d924f9862491 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": "bfb7905e-1ecb-401d-ad83-8028c12b7b6a", "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/bfb7905e-1ecb-401d-ad83-8028c12b7b6a", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/ports", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/states", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/volume", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/volume", "rel": "bookmark"}]} GET /v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-020a1684-f13a-414b-9b4a-97bb0857e528 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "bfb7905e-1ecb-401d-ad83-8028c12b7b6a", "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/bfb7905e-1ecb-401d-ad83-8028c12b7b6a", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb- 401d-ad83-8028c12b7b6a/ports", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/states", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/volume", "rel": "self"}, {"href": "http://localhost/nodes/bfb7905e-1ecb-401d-ad83-8028c12b7b6a/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '54f9cef9-b7bc-4f7d-a73b-3284c5f97596', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/54f9cef9-b7bc-4f7d-a73b-3284c5f97596 Openstack-Request-Id: req-3962b9f6-b818-4c07-8a50-93e3b865bbec X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "54f9cef9-b7bc-4f7d-a73b-3284c5f97596", "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/54f9cef9-b7bc-4f7d-a73b-3284c5f97596", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/ports", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/states", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/volume", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/volume", "rel": "bookmark"}]} GET /v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90efd714-62ae-425c-a9e2-51636 dd1dc89 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "54f9cef9-b7bc-4f7d-a73b-3284c5f97596", "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/54f9cef9-b7bc-4f7d-a73b-3284c5f97596", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/ports", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/states", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/volume", "rel": "self"}, {"href": "http://localhost/nodes/54f9cef9-b7bc-4f7d-a73b-3284c5f97596/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '6bf3d19f-bd2d-40e7-b258-a15c35c6f93f', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f Openstack-Request-Id: req-1c3e6826-cb00-42a0-ad0f-b4bfd94f535b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "6bf3d19f-bd2d-40e7-b258-a15c35c6f93f", "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/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/ports", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/states", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/volume", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/volume", "rel": "bookmark"}]} GET /v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b4bddc3-60a7-4e7f-be9e-a559c821de4d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "6bf3d19f-bd2d-40e7-b258-a15c35c6f93f", "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/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/ports", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/states", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/volume", "rel": "self"}, {"href": "http://localhost/nodes/6bf3d19f-bd2d-40e7-b258-a15c35c6f93f/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '508aff2f-7bd 8-4770-ba6f-bb4b95daaf42', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/508aff2f-7bd8-4770-ba6f-bb4b95daaf42 Openstack-Request-Id: req-2a36a68e-574a-4c41-85d9-63d7f59c10a9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "508aff2f-7bd8-4770-ba6f-bb4b95daaf42", "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/508aff2f-7bd8-4770-ba6f-bb4b95daaf42", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/ports", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/states", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/volume", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/volume", "rel": "bookmark"}]} GET /v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c189019a-c067-4c6f-9593-1a3069230c17 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "508aff2f-7bd8-4770-ba6f-bb4b95daaf42", "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/508aff2f-7bd8-4770-ba6f-bb4b95daaf42", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/ports", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/states", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/volume", "rel": "self"}, {"href": "http://localhost/nodes/508aff2f-7bd8-4770-ba6f-bb4b95daaf42/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'ba2cdaaf-b1b3-4339-b78d-d7280fa40f65', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65 Openstack-Request-Id: req-56e69782-7c12-4c65-8781-02f7c699ce4d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ba2cdaaf-b1b3-4339-b78d-d7280fa40f65", "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/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/ports", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/states", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/volume", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/volume", "rel": "bookmark"}]} GET /v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dfef65f0-46eb-4c20-9477-6a1c086892c4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ba2cdaaf-b1b3-4339-b78d-d7280fa40f65", "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/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/ports", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/states", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/volume", "rel": "self"}, {"href": "http://localhost/nodes/ba2cdaaf-b1b3-4339-b78d-d7280fa40f65/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.063342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8af3ff75-865d-47e1-bcf3-cce912ecc7a5 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-host2", "fake-host1"], "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_network_interface": null, "enabled_network_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": []}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27b4932b-801b-45bb-a941-a4e923fe4970 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-host2", "fake-host1"], "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-71eeaec9-04c3-45f0-a7e1-86e101ae675f 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-host2", "fake-host1"], "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-f65c8f44-6793-4b99-9965-d976da0b6f88 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-07855a89-9cf5-4c14-8038-33c3896e96 b6 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_portgroup.TestDelete.test_delete_portgroup_node_locked [0.152294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fe87d8b2-569a-443a-8924-b055f10f2e76 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.083789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/50886b52-d419-41c2-89ed-ab364a6ee5ae WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c1ab4d6-678f-45ed-a95f-6f2939a9eed8 X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.064904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ce1a582-0582-4adc-bec3-1244ef0140ce 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-host2", "fake-host1"], "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_network_interface": null, "enabled_network_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_power_interface": null, "enabled_power_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_network_interface": null, "enabled_network_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e744a04-27dc-4850-9020-44fe2bda9d8a 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-host2", "fake-host1"], "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-04be8d22-b50e-4bc1-868e-945e43077321 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-host2", "fake-host1"], "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- c1cbe373-f5b0-4d1c-902d-ca1da9e395e5 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-cc465060-f45f-4758-a9b9-63f259afb634 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_driver.TestListDrivers.test_get_custom_fields_invalid_api_version [0.046590s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-043e2ff0-34f1-4068-8d60-d6c40de79183 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-949766cf-f1bc-44b3-af7a-286f311603eb 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_ramdisk.TestContinueInspection.test_inspector_compatibility [0.102749s] ... 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-06e258ae-0902-4115-8cf9-485b9aada184 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5ef587dd-ac26-4668-8af7-5bfc23b81e2e"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields [0.037259s] ... 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-1dc7b9c7-c39c-409a-89a6-66ad50d8fec2 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-host2", "fake-host1"], "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_deploy_template.TestPatch.test_update_name_custom_trait [0.113714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/2cf828db-5565-4245-b51d-cb12d4527d0c WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b88f14c8-5170-424f-bb7e-3cb08feddde9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2cf828db-5565-4245-b51d-cb12d4527d0c", "created_at": "2024-09-05T08:47:42.986161+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2cf828db-5565-4245-b51d-cb12d4527d0c", "rel": "self"}, {"href": "http://localhost/deploy_templates/2cf828db-5565-4245-b51d-cb12d4527d0c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_invalid_schema [0.051754s] ... 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-48016584-3083-4f01-8490-ec127f461c4d X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.039134s] ... 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-b22fff54-701d-40ef-acdf-9e82afb25a5f 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}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.077044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/01ed2163-d17c-429d-9cb7-4345c2930881 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d7761ec-d306-4f38-9f49-ae8ff39e08e4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "01ed2163-d17c-429d-9cb7-4345c2930881", "created_at": "2024-09-05T08:47:43.070643+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/01ed2163-d17c-429d-9cb7-4345c2930881", "rel": "self"}, {"href": "http://localhost/deploy_templates/01ed2163-d17c-429d-9cb7-4345c2930881", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.043632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf5f00cb-7c83-4663-898a-9c6817cf5047 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-host2", "fake-host1"], "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-a2f87e9b-452c-41a5-9a5f-26e829da6c04 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-host2", "fake-host1"], "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-b6264ecc-184d-4b44-97a8-9c6e4ebeedae 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-host2", "fake-host1"], "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_ramdisk.TestContinueInspection.test_new_api [0.065517s] ... 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-cd3bce0f-dfbc-4c82-8b9d-ecc8ce4a0df3 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": "3fd6a5c2-bda5-436d-aa49-54da622d60db", "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/3fd6a5c2-bda5-436d-aa49-54da622d60db", "rel": "self"}, {"href": "http://localhost/nodes/3fd6a5c2-bda5-436d-aa49-54da622d60db", "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"]}} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.042386s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c592a36e-f334-40ca-afb5-babb14f9baac 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-host2", "fake-host1"], "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-dc50fd09-3b0d-4bf0-b5d3-a40d3068454c 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-host2", "fake-host1"], "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-620055d1-04f7-4b6e-a65b-fb6fe340c69f 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-host2", "fake-host1"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.053830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/526d04d1-a017-47bd-ad78-392050a57cf7 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-92d36933-0acb-45be-82b4-a062c6502c82 X-Openstack-Ironic-Api-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 526d04d1-a017-47bd-ad78-392050a57cf7 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.044668s] ... 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-7e633136-a892-4cb4-868a-ef55cdc3b750 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.033472s] ... 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-df7b250d-1f12-404c-ad04-832e62df6573 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"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.046445s] ... 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-aa77ab5f-8188-47d3-9fbe-d1b98baa5e59 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.TestContinueInspection.test_old_api_version [0.054962s] ... 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-7165a042-7089-402d-93f6-48d5103e621a 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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.045354s] ... 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-c2f9cb3f-53a3-4b93-9de6-1fba0f9197d3 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-f3f23969-f2c6-4805-8c56-cb0839d0debc 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-084ae867-54e9-4e52-bf6d-fe4b76dad3de 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"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.414433s] ... 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-3bd437dc-f61c-4907-9080-b1f34599fbc4 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-76d51b9f-9775-4402-abbd-b89acc26c65f 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-771a8039-2d53-490b-905e-c9e7e14fd050 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-26a8cbdb-7738-4e10-81ff-f82bde9b52a2 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-04e6cbf4-70f6-4c95-bad2-f5de041872dd 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-a573384a-1cbf-4833-9757-34a481d06876 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-9f22d92b-f83d-44af-a365-522bbc102320 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-9c13523e-4345-4a1f-9740-d97a9209b124 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_event.TestPostRBAC.test_events_does_not_contain_event [0.055128s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-55b4827f-dd4f-4ca2-b6f8-e5f691e26528 X-Openstack-Ironic-Api-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_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.070756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=17b50092-4506-4e09-90f0-1eadcea44dbf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5c7c4b2-f623-4341-b9fd-1dd6e574785e 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": "17b50092-4506-4e09-90f0-1eadcea44dbf", "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/17b50092-4506-4e09-90f0-1eadcea44dbf", "rel": "self"}, {"href": "http://localhost/nodes/17b50092-4506-4e09-90f0-1eadcea44dbf", "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=17b50092-4506-4e09-90f0-1eadcea44dbf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7d835e0-b6f3-480f-8b5e-9e704173878a 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": "17b50092-4506-4e09-90f0-1eadcea44dbf", "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/17b50092-4506-4e09-90f0-1eadcea44dbf", "rel": "self"}, {"href": "http://localhost/nodes/17b50092-4506-4e09-90f0-1eadcea44dbf", "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=17b50092-4506-4e09-90f0-1eadcea44dbf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9fef50fe-afce-44c3-a5cc-508f8264e9ca 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": "17b50092-4506-4e09-90f0-1eadcea44dbf", "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/17b50092-4506-4e09-90f0-1eadcea44dbf", "rel": "self"}, {"href": "http://localhost/nodes/17b50092-4506-4e09-90f0-1eadcea44dbf", "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"]}} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.079404s] ... 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-020c136a-1c25-4dfa-a204-712c842876bd 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}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.043994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-74743a1d-79ee-4860-9b6f-1d1e769849ba X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.090430s] ... 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-436f66a8-282e-4495-b5d8-553296d041c3 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.049827s] ... 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-d6b2a543-07a0-4ee9-ba5c-ca00e4a78962 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_event.TestPostRBAC.test_events_unsupported_api_version [0.060773s] ... 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-13044b80-c52e-414f-b73e-c57bfd7c86c7 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}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.078131s] ... 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-24cdfb09-f639-4816-99e4-aecf09635a01 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": "3cac9706-5dab-4058-81e4-db3c30ce0175", "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/3cac9706-5dab-4058-81e4-db3c30ce0175", "rel": "self"}, {"href": "http://localhost/nodes/3cac9706-5dab-4058-81e4-db3c30ce0175", "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.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.068101s] ... 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-4b85ee7c-f1ff-4310-9b68-81160f1ea763 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_event.TestPost.test_events [0.056538s] ... 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-0ae4efbe-f0d8-4b61-bc29-535bb7a989cf 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_event.TestPost.test_events_does_not_contain_event [0.036782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d978cc21-8c16-4bae-8b88-3988f65cd987 X-Openstack-Ironic-Api-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_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.090909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=a9cf9b79-8423-4cfd-ad03-d3a0e92d331e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64142d61-01aa-4cdd-8fe6-603d8db9efad 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": "a9cf9b79-8423-4cfd-ad03-d3a0e92d331e", "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/a9cf9b79-8423-4cfd-ad03-d3a0e92d331e", "rel": "self"}, {"href": "http://localhost/nodes/a9cf9b79-8423-4cfd-ad03-d3a0e92d331e", "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"]}} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.090708s] ... 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-3ea38a84-dfd2-41bc-9958-4185ed372d2b 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_event.TestPost.test_events_invalid_event [0.040020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f44040a7-38e9-4601-9871-a7b32b0cb386 X-Openstack-Ironic-Api-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_network_bind_port_events [0.046635s] ... 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-c2c60af8-5c04-4549-81c2-8d45d91ca569 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.TestPost.test_create_node_valid_driver_info [0.104594s] ... 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-057d99eb-96a4-4299-9abd-5fc166371844 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": "2024-09-05T08:47:43.510389+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-28b216e6-de2b-4cfb-90f9-20615149bfce 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": "2024-09-05T08:47:43.510389+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_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.059501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=728303e8-1d8a-4544-8144-b4dac1767266 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fab64016-f7f4-4e25-964f-ca045474867a 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": "728303e8-1d8a-4544-8144-b4dac1767266", "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/728303e8-1d8a-4544-8144-b4dac1767266", "rel": "self"}, {"href": "http://localhost/nodes/728303e8-1d8a-4544-8144-b4dac1767266", "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"]}} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.053361s] ... 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-6800fcd9-4c05-4589-9bcf-dd1010fdd930 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_event.TestPost.test_events_unsupported_api_version [0.069324s] ... 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-daca1a77-e790-4692-aae8-018d5ba23f0d 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}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.072245s] ... 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-d8d879a9-780a-401a-9f51-50074d12ff34 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": "eda9515b-243c-4e74-bc49-d8f3166e37d0", "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/eda9515b-243c-4e74-bc49-d8f3166e37d0", "rel": "self"}, {"href": "http://localhost/nodes/eda9515b-243c-4e74-bc49-d8f3166e37d0", "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.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.087162s] ... 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-9cbbc1b1-5780-4fcb-ac80-4d27d5dffe78 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": "2024-09-05T08:47:43.602512+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-88d0f62e-4778-4085-9621-1fa8294954dd 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": "2024-09-05T08:47:43.602512+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.039145s] ... 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-86c4fa88-9f7a-4c14-bf98-ace3eb8dbacf X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.049498s] ... 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-a816c8fc-2b1e-4202-be0d-653aa701b42e 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.037163s] ... 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-060a995c-5e63-4c23-9bef-1176c26359d2 X-Openstack-Ironic-Api-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_bind_port_events [0.047419s] ... 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-96366288-2895-4b8b-a948-7a1aeb6827ad 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_device_id [0.043449s] ... 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-95a7cbaa-50de-4e41-8dbf-1dfe6dc2bf26 X-Openstack-Ironic-Api-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_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.099413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=86e1e367-4710-4ee8-a5a3-2018d3f6d417 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29669750-6d7a-4243-84dc-40c9b45cc72f 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": "86e1e367-4710-4ee8-a5a3-2018d3f6d417", "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/86e1e367-4710-4ee8-a5a3-2018d3f6d417", "rel": "self"}, {"href": "http://localhost/nodes/86e1e367-4710-4ee8-a5a3-2018d3f6d417", "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.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.100196s] ... 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-b499e135-ac35-46ca-9049-f65a0e921b74 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": "2024-09-05T08:47:43.697084+00:00", "updated_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-bc5ab3b7-b1f5-4e16-a6cc-cf94849c55eb 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": "2024-09-05T08:47:43.697084+00:00", "updated_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_event.TestPost.test_network_delete_port_events [0.048207s] ... 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-fde283fb-3bfb-4077-b856-6fbf6c70672c 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_mac_address [0.049267s] ... 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-680b3bf5-d8f8-4f2c-9d0b-12c49fa30052 X-Openstack-Ironic-Api-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_event.TestPost.test_network_port_event_invalid_binding_host_id [0.033449s] ... 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-f788fda7-c96c-4f7d-a0e2-28d1d7a63b95 X-Openstack-Ironic-Api-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_ramdisk.TestLookupScopedRBAC.test_not_found [0.055837s] ... 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-f44033a8-74bb-4aa3-90e4-fda7ec27141f X-Openstack-Ironic-Api-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_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.043682s] ... 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-c48b117b-8c55-4ed6-9848-47a954bfdf57 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.044230s] ... 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-679b2e28-4b45-40b0-abb6-0ce526f93b3a X-Openstack-Ironic-Api-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.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.050708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f05e4053-313c-4e24-930c-4932f6299b88 X-Openstack-Ironic-Api-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.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.038176s] ... 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-10eb12aa-cb89-4aab-9a19-856912bf2045 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status [0.048835s] ... 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-b4c844a4-7e55-4118-8bdf-944174b1e813 X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_with_chassis_uuid [0.137132s] ... 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-54bcdcb0-27b5-4bae-9ea0-0c437378668c 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": "2024-09-05T08:47:43.808015+00:00", "updated_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-3870225a-041d-4e4d-9976-d9b2d2a0cf9d 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": "2024-09-05T08:47:43.808015+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.052482s] ... 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-efffc126-3875-484f-8518-f0a8f0a09bf8 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_event.TestPostRBAC.test_network_unbind_port_events [0.039699s] ... 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-b2a3ea71-7e41-4abd-8273-1a4bcb01e3a1 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.TestLookupScopedRBAC.test_restrict_lookup [0.046253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=eeea493f-6724-4d76-861f-e2d9bf99ae5b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f8681be-7384-471a-b7a1-569506bf3227 X-Openstack-Ironic-Api-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_event.TestPostRBAC.test_network_unknown_event_property [0.048047s] ... 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-886f81c8-d528-42ce-acf8-5288271f1a5e X-Openstack-Ironic-Api-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_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.033531s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_conductor_group [0.107409s] ... 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-4b548ae4-3225-4185-b787-5d670109c64a 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": "2024-09-05T08:47:43.947570+00:00", "updated_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-c154aa4f-62d4-4918-92f6-31c79ef09254 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": "2024-09-05T08:47:43.947570+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_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.032014s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.064476s] ... 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-f353d04b-dd31-4a5b-a879-58424b05cbf9 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": "2024-09-05T08:47:43.985120+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.022246s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.020881s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.045849s] ... 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-85fac57a-da1d-4094-9392-14109f2e8791 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": "2024-09-05T08:47:44.032257+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.033677s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.224629s] ... 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-2198dd67-7b34-40a1-88e4-f8375f7c4e2f X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.121932s] ... 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-b89860ca-9936-4495-988a-39c82a2af45c 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": "2024-09-05T08:47:44.068974+00:00", "updated_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-a984695b-805a-49cc-88b8-6c885aa8bb33 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": "2024-09-05T08:47:44.068974+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.033495s] ... 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-845db78c-2bf9-4568-a095-4f56654fbba4 X-Openstack-Ironic-Api-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.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.040042s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.067582s] ... 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-7ab19cc2-d919-4ebe-9d20-6fbf1c3c527c 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_event.TestPost.test_network_port_event_invalid_status [0.032137s] ... 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-e23d643a-c448-4271-aba2-ac7d1921ed1e X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.032466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.052057s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.039691s] ... 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-34ffed3a-9b2c-470f-b28a-28b4b7754d0a 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.TestPost.test_create_node_with_internal_field [0.090912s] ... 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-6fb0d5a7-d332-411b-95da-b1c5624c1b6d 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.052734s] ... 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-90d3f1ee-2dbd-44b4-9ef2-8be53535e5ac 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": "2024-09-05T08:47:44.185796+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.056951s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.058016s] ... 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-8f7637d0-c1ab-4674-94c5-c3a0153d1d48 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields [0.041092s] ... 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-a0971fcb-619f-46ce-9af3-47674cc10ff3 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.068074s] ... 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-9677e539-4830-4d8e-b99a-da60408194ec 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.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.036044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '24be1c92-3699-4fb6-88e0-b011dc10c275'} GOT Response: 204 No Content Openstack-Request-Id: req-64958eb5-3fa7-4a10-8b00-52587eb2e994 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_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.062685s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields [0.043133s] ... 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-44d97f2c-bf30-4d4e-8321-f2dd3d5520ee 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": "2024-09-05T08:47:44.272856+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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.039706s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': 'b59a7cf0-6db2-4404-ae54-19b3df9261bd'} GOT Response: 204 No Content Openstack-Request-Id: req-140e41b2-8722-4cfd-9283-626bb5dbbc8f 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_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.050540s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.084864s] ... 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-79097bb8-fef5-47fe-a84b-e7f5ef9f1db3 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_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.036398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': 'e3af786b-d799-4268-b9d3-b1b2c68a51f0'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-74a94af2-afb4-46d1-8ffd-656b29a4ea96 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version [0.061883s] ... 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-8c42b2de-0c79-46fa-bd62-6836360abacb 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.039614s] ... 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-62626dae-1bca-48c9-9e46-ee6472b8d5b0 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.052358s] ... 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_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.066165s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.032230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': 'dd3b28e9-7679-476a-ba59-f721267274d1'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0dc397bc-3ad2-41d9-8137-6d4f7ae01fca 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}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.036327s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.086760s] ... 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-fbc80beb-4dac-4d79-b2d6-1747f43b5848 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": "2024-09-05T08:47:44.423442+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.036940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'bce49374-37be-4165-985c-dc591e529248'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-3b9c8fcf-6dc8-4ca8-a6bf-e945a218cafb 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_node.TestPost.test_post_volume_connectors_subresource [0.070906s] ... 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-1f47fc69-215b-44cb-8d36-d266a10339b3 X-Openstack-Ironic-Api-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_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.057884s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.039869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/doesntexist/vifs WITH {'id': 'b01cac9a-49ca-45b0-9465-d6981fed3223'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ff93e489-38a1-4d44-a94f-a21c4ed4568d 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_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.053935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.088197s] ... 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-dace2d16-8c62-45b2-b588-0d8aa909ae89 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.032955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ca176dd4-ffc0-4812-9927-57b75df9ea94', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3cd9f4a8-1928-4546-92bb-10101441e29a 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}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.061738s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.043807s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '4404437e-26d7-43ee-bb33-220ff4c76347', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content Openstack-Request-Id: req-d3e693f6-fb7f-479d-bc9b-f87621c442ef 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_node.TestPost.test_post_volume_targets_subresource [0.060674s] ... 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-6b61bf4f-73db-4bae-963d-efc7e2687fdf X-Openstack-Ironic-Api-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_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.038080s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.032316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/2f1f61ac-94ce-4082-8c58-4eba146882af GOT Response: 204 No Content Openstack-Request-Id: req-ea822393-8cf1-457d-8c7b-8141e2eddd8b 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_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.046543s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.037426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/vifs/d6e22161-20f8-45a4-a3ec-da5d8b85c945 GOT Response: 204 No Content Openstack-Request-Id: req-ef7fc3fe-25ee-476b-8b37-932d667f4b78 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_node.TestPost.test_vendor_passthru_async [0.085465s] ... 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-146556d9-6be5-47eb-9824-f75fb7a24c1d 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_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.036243s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.032392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/669d8ee5-ff0d-44b2-83f3-0e2f276d040f GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-92cb9120-9864-4c11-b305-faddf4d7a294 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}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.037235s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.051563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/doesntexist/vifs/d31053e6-e725-468a-ab3f-a7b780949dac GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a2f4b812-d46e-4e69-9ce6-7b980301d0a2 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_node.TestPost.test_vendor_passthru_by_name [0.082043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted Openstack-Request-Id: req-e438a264-e238-485c-b962-d5a515d0fd40 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_node.TestAttachDetachVif.test_vif_list [0.031599s] ... 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-77e489bc-7e67-4c1c-98ec-fbe81947f259 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"vifs": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.038531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.097512s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.292738s] ... 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_node.TestPost.test_vendor_passthru_delete [0.085506s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-e23a51b3-24c1-442a-bde7-81b37824c069 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.TestBIOS.test_get_one_bios_no_registry [0.055115s] ... 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-ad8a5ba9-b91b-4ebc-ac9b-3abaefcbe15b 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": "2024-09-05T08:47:44.865960+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_node.TestPost.test_vendor_passthru_get [0.059792s] ... 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-063dcfed-19bf-4df0-b59b-885a590104b4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.059446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b70cbbf8-80e0-45e3-bb2c-35f626a47bac 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.054025s] ... 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-3111e381-b5df-47e8-a1b4-121d638ffcee 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-5e8b71ef-eeed-464f-a572-5aab174c04e6 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"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard [0.176350s] ... 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-2d6a4638-9b0f-4904-a64c-133829fd1a3f 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": "2024-09-05T08:47:44.953208+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-43c1fe70-9290-42bc-af5b-3b3fa2f0767f 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": "2024-09-05T08:47:44.953208+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "dep loy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.065308s] ... 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-8894ecea-f235-47c5-a07f-6d5dad7dd604 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.093708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b8866d6-9847-4088-adfd-2485e099ec28 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": "1aa6313c-a3f6-4306-8edf-a1c74f6b819a", "instance_uuid": "569c0b8f-6133-4abd-9f8c-6442b1c4b611", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1aa6313c-a3f6-4306-8edf-a1c74f6b819a", "rel": "self"}, {"href": "http://localhost/nodes/1aa6313c-a3f6-4306-8edf-a1c74f6b819a", "rel": "bookmark"}]}, {"uuid": "5a224663-5767-4d3c-93c4-39ed9eb425b8", "instance_uuid": "926d74cf-69e0-47eb-bc9e-149eed2f5a97", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5a224663-5767-4d3c-93c4-39ed9eb425b8", "rel": "self"}, {"href": "http://localhost/nodes/5a224663-5767-4d3c-93c4-39ed9eb425b8", "rel": "bookmark"}]}, {"uuid": "27c357be-cbfb-4379-a414-c471306f6692", "instance_uuid": "bf38865f-26b7-4946-9d4d-7e19c1ba56dc", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/27c357be-cbfb-4379-a414-c471306f6692", "rel": "self"}, {"href": "http://localhost/nodes/27c357be-cbfb-4379-a414-c471306f6692", "rel": "bookmark"}]}, {"uuid": "21e470c8-1ad4-4e9d-9112-e4db41ca0660", "instance_uuid": "f4b28dbf-6543-434d-8907-dc08ef2ba88f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/21e470c8-1ad4-4e9d-9112-e4db41ca0660", "rel": "self"}, {"href": "http://localhost/nodes/21e470c8-1ad4-4e9d-9112-e4db41ca0660", "rel": "bookmark"}]}]} GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21024ff0-237a-455f-a312-636a427d8b46 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": "1aa6313c-a3f6-4306-8edf-a1c74f6b819a", "instance_uuid": "569c0b8f-6133-4abd-9f8c-6442b1c4b611", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1aa6313c-a3f6-4306-8edf-a1c74f6b819a", "rel": "self"}, {"href": "http://localhost/nodes/1aa6313c-a3f6-4306-8edf-a1c74f6b819a", "rel": "bookmark"}]}, {"uuid": "5a224663-5767-4d3c-93c4-39ed9eb425b8", "instance_uuid": "926d74cf-69e0-47eb-bc9e-149eed2f5a97", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5a224663-5767-4d3c-93c4-39ed9eb425b8", "rel": "self"}, {"href": "http://localhost/nodes/5a224663-5767-4d3c-93c4-39ed9eb425b8", "rel": "bookmark"}]}, {"uuid": "27c357be-cbfb-4379-a414-c471306f6692", "instance_uuid": "bf38865f-26b7-4946-9d4d-7e19c1ba56dc", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/27c357be-cbfb-4379-a414-c471306f6692", "rel": "self"}, {"href": "http://localhost/nodes/27c357be-cbfb-4379-a414-c471306f6692", "rel": "bookmark"}]}, {"uuid": "21e470c8-1ad4-4e9d-9112-e4db41ca0660", "instance_uuid": "f4b28dbf-6543-434d-8907-dc08ef2ba88f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/21e470c8-1ad4-4e9d-9112-e4db41ca0660", "rel": "self"}, {"href": "http://localhost/nodes/21e470c8-1ad4-4e9d-9112-e4db41ca0660", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.057003s] ... 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-9ff466b5-ed72-477f-918a-5a067bf7c51d 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.044718s] ... 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-34d189af-0a0d-407f-a308-61d2bb5853b3 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.TestListNodes.test_collection_links [0.055520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6faec4c-7634-499e-b3e8-a2236a06d28b 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": "bea083ac-8c27-4aa7-af98-4e06abb29e42", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/bea083ac-8c27-4aa7-af98-4e06abb29e42", "rel": "self"}, {"href": "http://localhost/nodes/bea083ac-8c27-4aa7-af98-4e06abb29e42", "rel": "bookmark"}]}, {"uuid": "ac3f00b6-d019-40c7-a6be-d8c26ff924d2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ac3f00b6-d019-40c7-a6be-d8c26ff924d2", "rel": "self"}, {"href": "http://localhost/nodes/ac3f00b6-d019-40c7-a6be-d8c26ff924d2", "rel": "bookmark"}]}, {"uuid": "b9ad8aa9-51f0-4e53-8f39-66bc49d3aab1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/b9ad8aa9-51f0-4e53-8f39-66bc49d3aab1", "rel": "self"}, {"href": "http://localhost/nodes/b9ad8aa9-51f0-4e53-8f39-66bc49d3aab1", "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=b9ad8aa9-51f0-4e53-8f39-66bc49d3aab1"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.052902s] ... 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-4a65b4d2-5e25-4a93-9455-617cd81127c8 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_node.TestListNodes.test_collection_links_custom_fields [0.059619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-790158c9-f25d-4adc-8afa-679b1da35ba7 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": "4133caab-0574-4967-bcb2-0291412239bf", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/4133caab-0574-4967-bcb2-0291412239bf", "rel": "self"}, {"href": "http://localhost/nodes/4133caab-0574-4967-bcb2-0291412239bf", "rel": "bookmark"}]}, {"uuid": "a3580859-f65a-4b46-9070-5e04b04df805", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/a3580859-f65a-4b46-9070-5e04b04df805", "rel": "self"}, {"href": "http://localhost/nodes/a3580859-f65a-4b46-9070-5e04b04df805", "rel": "bookmark"}]}, {"uuid": "56815d9a-9e11-40d3-b590-98b400777c05", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/56815d9a-9e11-40d3-b590-98b400777c05", "rel": "self"}, {"href": "http://localhost/nodes/56815d9a-9e11-40d3-b590-98b400777c05", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=56815d9a-9e11-40d3-b590-98b400777c05"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.110293s] ... 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-a5db8ec5-0f04-4fd7-ad2c-8a4e4b6cae67 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.033962s] ... 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-66ae1629-ec66-4b1c-9183-7890abadf6f5 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_node.TestPut.test_abort_cleanhold [0.052623s] ... 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-b9430e29-7344-4d33-ae8f-3515f87743f3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.064656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70a5eeee-62ae-43b1-a817-a04b1ced683c 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": "fc5a09a9-b532-456f-baa4-1554d734c7ba", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fc5a09a9-b532-456f-baa4-1554d734c7ba", "rel": "self"}, {"href": "http://localhost/nodes/fc5a09a9-b532-456f-baa4-1554d734c7ba", "rel": "bookmark"}]}, {"uuid": "2e45300f-f952-4f98-9eb3-f992a4501b16", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2e45300f-f952-4f98-9eb3-f992a4501b16", "rel": "self"}, {"href": "http://localhost/nodes/2e45300f-f952-4f98-9eb3-f992a4501b16", "rel": "bookmark"}]}, {"uuid": "300e26d3-192a-43cb-a4e0-16e09e95a144", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/300e26d3-192a-43cb-a4e0-16e09e95a144", "rel": "self"}, {"href": "http://localhost/nodes/300e26d3-192a-43cb-a4e0-16e09e95a144", "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=300e26d3-192a-43cb-a4e0-16e09e95a144"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.055044s] ... 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-d1349822-e1ee-4bc3-9cbe-04b29d5d0c83 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.118406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-d0fd596e-a9ea-4794-860a-582144e939ad 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_deployhold [0.057082s] ... 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-495a9a32-6f13-4ec1-aaa1-77f9c98f3c64 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.104606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=d7789135-7a64-4494-bb42-0de7808ea396 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb212e5a-ce10-4980-8c02-9ab55111016f 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": "4861eb89-7266-4282-8104-c284563ebf50", "instance_uuid": "d7789135-7a64-4494-bb42-0de7808ea396", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4861eb89-7266-4282-8104-c284563ebf50", "rel": "self"}, {"href": "http://localhost/nodes/4861eb89-7266-4282-8104-c284563ebf50", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.528281s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.102946s] ... 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-3ef0a4b3-2a4a-49ae-ae58-1d777d286855 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.077153s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0523bbd-1d85-4d52-aa13-9e22bc7f682a 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": "2024-09-05T08:47:45.385567+00:00", "updated_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.TestPut.test_abort_invalid_state [0.085234s] ... 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-859c16db-6beb-45a3-8635-bedefd4e5907 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_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.065677s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.044208s] ... 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-5c9e05dd-c3e2-453b-a8b9-89b4de0ed5fd 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.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.059880s] ... 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-c59215ba-147b-46ea-a286-637fee7c3a8c 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.096911s] ... 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-11ba1dcd-1eb2-4f72-bfed-75d54cf3abc8 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}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.082643s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.069202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c3c6cc49-ca78-48b1-be5f-ca0caeb8598d 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.TestPut.test_adopt_from_adoptfail [0.059405s] ... 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-7e398b0b-3da7-453f-a243-2aa6c9b2c677 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields [0.037854s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.073370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 WITH {} GOT Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links [0.046773s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.049227s] ... 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-35161adc-257e-44ee-8e4d-c5ae455ca614 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid [0.103119s] ... 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-e8d9c21b-20a8-4f0f-bbc6-0165aeaa6777 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": "2024-09-05T08:47:45.565932+00:00", "updated_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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.058623s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.112657s] ... 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-52d5bae7-f045-4f6e-8948-9d351e613439 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}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.030995s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.068973s] ... 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-680023ea-604c-425b-9519-14d1380e57a1 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": "2024-09-05T08:47:45.673673+00:00", "updated_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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.067152s] ... 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-e2da9300-c44b-4291-a609-60ff6dcab0db 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match [0.065363s] ... 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-0e91815e-56df-495f-900b-6a114ef38c63 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.065576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ddd8d380-036e-4c44-b52d-7fb98dadf625 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_node.TestTraits.test_delete_all_traits [0.111365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-b2d2eb97-78c3-453d-9975-6334e1694852 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.262244s] ... 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-0a31f561-7e2a-4cdd-9429-7476f3c733a9 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.091663s] ... 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-3d79fbd7-5865-4609-8a92-ee72e783ed7e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.070896s] ... 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-246b7a47-290f-447a-8df1-e4a32916e218 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.081468s] ... 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-ba743f6f-48cd-4779-81d6-756725848cef 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-6425f351-6cba-4ebe-b1a3-ea9ca8822a7b 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-fb996feb-737b-4b63-a175-b810c059431d 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden [0.120530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0249f065-d8c3-48e1-9422-8b8d70952bdf 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": "9f9ac042-8b64-4b30-a025-7aec012b920a", "created_at": "2024-09-05T08:47:45.890956+00:00", "updated_at": null, "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/9f9ac042-8b64-4b30-a025-7aec012b920a", "rel": "self"}, {"href": "http://localhost/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/ports", "rel": "self"}, {"href": "http://localhost/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/states", "rel": "self"}, {"href": "http://localhost/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/volume", "rel": "self"}, {"href": "http://localhost/nodes/9f9ac042-8b64-4b30-a025-7aec012b920a/volume", "rel": "bookmark"}]}, {"uuid": "6ad112c9-0c71-4c8a-9892-611de6137595", "created_at": "2024-09-05T08:47:45.906069+00:00", "updated_at": null, "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/6ad112c9-0c71-4c8a-9892-611de6137595", "rel": "self"}, {"href": "http://localhost/nodes/6ad112c9-0c71-4c8a-9892-611de6137595", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/ports", "rel": "self"}, {"href": "http://localhost/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/states", "rel": "self"}, {"href": "http://localhost/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/volume", "rel": "self"}, {"href": "http://localhost/nodes/6ad112c9-0c71-4c8a-9892-611de6137595/volume", "rel": "bookmark"}]}, {"uuid": "589fc3dd-77bd-4f10-ac31-8fe2047eeba0", "created_at": "2024-09-05T08:47:45.911661+00:00", "updated_at": null, "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/589fc3dd-77bd-4f10-ac31-8fe2047eeba0", "rel": "self"}, {"href": "http://localhost/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/ports", "rel": "self"}, {"href": "http://localhost/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/states", "rel": "self"}, {"href": "http://localhost/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/volume", "rel": "self"}, {"href": "http://localhost/nodes/589fc3dd-77bd-4f10-ac31-8fe2047eeba0/volume", "rel": "bookmark"}]}, {"uuid": "e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b", "created_at": "2024-09-05T08:47:45.914114+00:00", "updated_at": null, "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/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b", "rel": "self"}, {"href": "http://localhost/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/ports", "rel": "self"}, {"href": "http://localhost/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/states", "rel": "self"}, {"href": "http://localhost/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/volume", "rel": "self"}, {"href": "http://localhost/nodes/e2f3c3bb-bf21-4c85-a80d-3d30c5e66b6b/volume", "rel": "bookmark"}]}, {"uuid": "f58a2b8a-908a-424a-9a9e-6ddd86ba91ad", "created_at": "2024-09-05T08:47:45.915831+00:00", "updated_at": null, "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/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad", "rel": "self"}, {"href": "http://localhost/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/ports", "rel": "self"}, {"href": "http://localhost/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/states", "rel": "self"}, {"href": "http://localhost/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/volume", "rel": "self"}, {"href": "http://localhost/nodes/f58a2b8a-908a-424a-9a9e-6ddd86ba91ad/volume", "rel": "bookmark"}]}, {"uuid": "79cfe68c-ffa9-4984-9f92-43a0d5651ee0", "created_at": "2024-09-05T08:47:45.917541+00:00", "updated_at": null, "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/79cfe68c-ffa9-4984-9f92-43a0d5651ee0", "rel": "self"}, {"href": "http://localhost/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/ports", "rel": "self"}, {"href": "http://localhost/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/states", "rel": "self"}, {"href": "http://localhost/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/volume", "rel": "self"}, {"href": "http://localhost/nodes/79cfe68c-ffa9-4984-9f92-43a0d5651ee0/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.042778s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8e1ad115-9e40-485f-9c64-6bafeb61fe8d 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.115602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7888d145-6385-476f-a169-bb25dede188e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestPut.test_bad_requests_in_adoption_failed_state [0.083173s] ... 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-fc9b071f-004d-4997-85e6-0aa173e8480f 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-a93c1d41-0ec6-412e-ad85-c3bfcb9e332d 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-ce2d4207-2a73-4e38-b4ed-3087854a9b84 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false [0.048556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d43a248-006f-4403-bfd0-5d4030220d7e 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-fd4ac56f-398e-4bca-894b-f1408484d912 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.124730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-dd17bd0c-a61a-434a-a8d8-70af1971faa2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.059790s] ... 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-c93663bd-5909-479b-85ed-90c6d3e0e297 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-265f8d51-1f21-446a-9455-8b8999aa089c 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-faddba4f-45aa-45b1-be2c-075de5f72e80 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.046408s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content Openstack-Request-Id: req-fc08af51-852b-428a-9b2e-31c939efd4ca 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.090987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bd069d83-64f2-4e57-8326-d34fe9dd213a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestListNodes.test_detail_snmpv3 [0.052602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2da6fcc4-bc3e-4314-bee9-ccee12fa35c6 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": "2024-09-05T08:47:46.063760+00:00", "updated_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_node.TestTraits.test_delete_trait_fails_if_node_locked [0.056642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4058ed56-b2be-4b60-b2de-6ac9983bad7e 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver [0.066475s] ... 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-cf5c0cd8-635e-4e89-8557-f04dfefb467b 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.058110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07e5dc78-0e1c-445d-af82-1b0082b5fd45 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": "c68e484a-f9ee-4b34-bc4a-25b1251c7e18", "created_at": "2024-09-05T08:47:46.124857+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/c68e484a-f9ee-4b34-bc4a-25b1251c7e18", "rel": "self"}, {"href": "http://localhost/nodes/c68e484a-f9ee-4b34-bc4a-25b1251c7e18", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c68e484a-f9ee-4b34-bc4a-25b1251c7e18/ports", "rel": "self"}, {"href": "http://localhost/nodes/c68e484a-f9ee-4b34-bc4a-25b1251c7e18/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c68e484a-f9ee-4b34-bc4a-25b1251c7e18/states", "rel": "self"}, {"href": "http://localhost/nodes/c68e484a-f9ee-4b34-bc4a-25b1251c7e18/states", "rel": "bookmark"}]}, {"uuid": "6a39651e-d007-4dd5-8096-088bb43a1b4c", "created_at": "2024-09-05T08:47:46.123011+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/6a39651e-d007-4dd5-8096-088bb43a1b4c", "rel": "self"}, {"href": "http://localhost/nodes/6a39651e-d007-4dd5-8096-088bb43a1b4c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6a39651e-d007-4dd5-8096-088bb43a1b4c/ports", "rel": "self"}, {"href": "http://localhost/nodes/6a39651e-d007-4dd5-8096-088bb43a1b4c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6a39651e-d007-4dd5-8096-088bb43a1b4c/states", "rel": "self"}, {"href": "http://localhost/nodes/6a39651e-d007-4dd5-8096-088bb43a1b4c/states", "rel": "bookmark"}]}, {"uuid": "84e8abd9-53ea-4a35-8300-1430c25a01fc", "created_at": "2024-09-05T08:47:46.120823+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/84e8abd9-53ea-4a35-8300-1430c25a01fc", "rel": "self"}, {"href": "http://localhost/nodes/84e8abd9-53ea-4a35-8300-1430c25a01fc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/84e8abd9-53ea-4a35-8300-1430c25a01fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/84e8abd9-53ea-4a35-8300-1430c25a01fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/84e8abd9-53ea-4a35-8300-1430c25a01fc/states", "rel": "self"}, {"href": "http://localhost/nodes/84e8abd9-53ea-4a35-8300-1430c25a01fc/states", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.032657s] ... 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-21189646-3413-46fb-8ccd-ef6980815018 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_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.039912s] ... 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-4a3674e2-6da4-4677-981d-e7c0fd8c1588 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_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.050432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7a24f456-d1cc-4b0d-a79c-39cc9e448d78 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin [0.104831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-025388fd-add2-444b-9c8b-5930a7451b2d 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": "2024-09-05T08:47:46.150139+00:00", "updated_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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.042025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed17b4ad-ff72-41f4-af79-aa6cc8e5b14b 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": "2024-09-05T08:47:46.210555+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.046229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3c880fb8-ed20-494e-abbd-8f8a15c7893f 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request [0.055975s] ... 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-0615d65f-42a2-4e19-8ba4-daff5a3265cc 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member [0.089634s] ... 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-369b062c-1c11-4636-800b-c672e6b76559 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.044125s] ... 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-3197ca60-aa4a-4f14-b2a7-9798a582e1db 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.046570s] ... 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-dfab38d0-c708-4be1-912e-d97397b8cd48 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.074756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-53242172-e101-44d1-a316-992bb3a5d305 X-Openstack-Ironic-Api-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_node.TestTraits.test_get_all_traits [0.047026s] ... 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-ce1e70d9-4aa8-4004-a5c3-b7fb01018df3 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"]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.042373s] ... 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-7b30d756-2825-4aae-a217-1f8d62eac947 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.043761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08f3c941-5551-4c1e-b707-7b57becd611e 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"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer [0.080622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-622d1cc8-4460-4bc8-8515-837c9b7541a3 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": "2024-09-05T08:47:46.311403+00:00", "updated_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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.051386s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7005a498-b2df-4a16-955c-f99edc33ff2a 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_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.068715s] ... 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-e275953a-a6eb-459e-a5cc-1914ed323a39 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.083060s] ... 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-1daaabfa-33cc-4f72-8f54-e675a45e3d7d 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_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.042910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7ef36341-afbc-477e-b0c3-012ccd314e91 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin [0.081668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f120e005-63fb-4a41-b5bd-fedeb19ef3d8 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": "2024-09-05T08:47:46.391072+00:00", "updated_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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.064672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0870ad3e-85c1-450e-9e13-28e1283f44d0 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": "a729ac8c-eb3a-4024-87f6-2a2e32347688", "created_at": "2024-09-05T08:47:46.438884+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "28b91284-0ffa-46b6-8acd-13a11debe8f1", "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/a729ac8c-eb3a-4024-87f6-2a2e32347688", "rel": "self"}, {"href": "http://localhost/nodes/a729ac8c-eb3a-4024-87f6-2a2e32347688", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a729ac8c-eb3a-4024-87f6-2a2e32347688/ports", "rel": "self"}, {"href": "http://localhost/nodes/a729ac8c-eb3a-4024-87f6-2a2e32347688/ports", "rel": "bookmark"}]}, {"uuid": "86ad830e-3742-450b-9d3e-b8c89a2e5c8b", "created_at": "2024-09-05T08:47:46.440606+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "b978710a-d45a-4d19-8d9a-0bb8a4590bc1", "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/86ad830e-3742-450b-9d3e-b8c89a2e5c8b", "rel": "self"}, {"href": "http://localhost/nodes/86ad830e-3742-450b-9d3e-b8c89a2e5c8b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/86ad830e-3742-450b-9d3e-b8c89a2e5c8b/ports", "rel": "self"}, {"href": "http://localhost/nodes/86ad830e-3742-450b-9d3e-b8c89a2e5c8b/ports", "rel": "bookmark"}]}, {"uuid": "44825008-d7d2-482e-afb3-4ab1fb806a83", "created_at": "2024-09-05T08:47:46.442313+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "946356a5-bc20-4135-8af8-5c0f4000404f", "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/44825008-d7d2-482e-afb3-4ab1fb806a83", "rel": "self"}, {"href": "http://localhost/nodes/44825008-d7d2-482e-afb3-4ab1fb806a83", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/44825008-d7d2-482e-afb3-4ab1fb806a83/ports", "rel": "self"}, {"href": "http://localhost/nodes/44825008-d7d2-482e-afb3-4ab1fb806a83/ports", "rel": "bookmark"}]}, {"uuid": "dd8ee750-423d-44bd-8c63-5e665a4b8e7a", "created_at": "2024-09-05T08:47:46.444041+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "28247c22-2c70-4d7f-ba97-0b02169efc9d", "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/dd8ee750-423d-44bd-8c63-5e665a4b8e7a", "rel": "self"}, {"href": "http://localhost/nodes/dd8ee750-423d-44bd-8c63-5e665a4b8e7a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/dd8ee750-423d-44bd-8c63-5e665a4b8e7a/ports", "rel": "self"}, {"href": "http://localhost/nodes/dd8ee750-423d-44bd-8c63-5e665a4b8e7a/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.051509s] ... 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-da540ec5-1e87-4fc8-b69e-99f6d00ffd58 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_node.TestTraits.test_no_add_single_trait_via_body [0.050693s] ... 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-33612b0d-b426-40bf-a67a-f1f54d53f316 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.071373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=703b5849-9af4-4e17-bfb7-fd1899077dad WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52719f4a-89aa-48a9-9849-be2921e7099c 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": "13f3ea1e-f3ab-4a7e-ad85-4a85913eed3a", "created_at": "2024-09-05T08:47:46.487387+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "703b5849-9af4-4e17-bfb7-fd1899077dad", "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/13f3ea1e-f3ab-4a7e-ad85-4a85913eed3a", "rel": "self"}, {"href": "http://localhost/nodes/13f3ea1e-f3ab-4a7e-ad85-4a85913eed3a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/13f3ea1e-f3ab-4a7e-ad85-4a85913eed3a/ports", "rel": "self"}, {"href": "http://localhost/nodes/13f3ea1e-f3ab-4a7e-ad85-4a85913eed3a/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.090494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc5f1792-db08-4863-9f55-841b603fe741 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": "a50d3400-fa12-4dff-8aed-969b9304de64", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.069809s] ... 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-6378f3ba-c017-43a1-8d4e-ee66493b7a32 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//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.099873s] ... 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-7e3f47b9-3ec7-4919-859b-b732d6ce65cf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.70 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.051198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a515ead-73a4-4e6f-a6ab-711030f6ca15 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_node.TestTraits.test_set_all_traits [0.046720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-44e27327-727f-4ee1-911e-b13b58966530 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin [0.079306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e25e89a-6a55-4150-b44f-6f2583e0ddd8 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": "0519fe9c-6a7c-4925-800a-cfac8dccdf6a", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.041803s] ... 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-09289f9e-b167-44af-acd5-c1de94bb4137 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.072876s] ... 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-5ca396a0-3185-41d4-b2dd-0b70e2f3e1c3 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.061628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content Openstack-Request-Id: req-a8987bc1-3ade-471e-8d66-03ae0994743b 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.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.077129s] ... 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-2b31b59f-f41d-48ae-9999-c0f8735d254b 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.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.042911s] ... 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin [0.102972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb622d28-44df-419f-aabb-ce07765ec8b6 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": "2024-09-05T08:47:46.657636+00:00", "updated_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": "2024-09-05T08:47:46.658904+00:00", "updated_at": "2024-09-05T08:47:46.672580+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": "7b535801-9796-4d9c-8e8c-860ef208e5f4", "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": "7b535801-9796-4d9c-8e8c-860ef208e5f4", "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": "2024-09-05T08:47:46.693770+00:00", "updated_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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.037426s] ... 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-2a4f3aea-efbf-406b-a552-5b0083885958 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_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.043685s] ... 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-a93d9bcd-77ec-4dbf-8b43-f17c53534476 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.101203s] ... 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-0feb53f1-5831-4d1c-8bee-b4bf8b9a87e1 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.048541s] ... 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-387ae989-5deb-4b7d-8c06-d702f7a9a0f6 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} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.073776s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8d7b11fa-de45-417d-8208-19d55e424ece X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestListNodes.test_get_boot_device_by_name [0.049094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b210781e-2cb8-43c9-8b38-e67a17f5735e 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} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.084538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-04decc4e-38db-4a98-8437-1dd4fd8f2b99 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer [0.087448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-816db061-fefd-4aca-a557-6bed6d658280 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": "2024-09-05T08:47:46.825032+00:00", "updated_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": "2024-09-05T08:47:46.826370+00:00", "updated_at": "2024-09-05T08:47:46.833165+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": "e1291243-72a9-4584-9c3e-123d6608aea6", "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": "e1291243-72a9-4584-9c3e-123d6608aea6", "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": "2024-09-05T08:47:46.856303+00:00", "updated_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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.041186s] ... 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-18df3558-4d12-4dea-845f-23284d476ff9 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.TestPut.test_inject_nmi_not_allowed [0.040432s] ... 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-fb8930f2-1393-4edc-91e6-b1a825773fae 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.050623s] ... 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-7d370c1a-7536-4488-812a-75f0685d3aa8 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.100715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66400640-c74b-4ef0-84bc-4c87600bd692 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": "899ef412-537b-4937-9958-5b55a964bb2a", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/899ef412-537b-4937-9958-5b55a964bb2a", "rel": "self"}, {"href": "http://localhost/nodes/899ef412-537b-4937-9958-5b55a964bb2a", "rel": "bookmark"}]}, {"uuid": "d9806674-58aa-494c-9288-0f1a0bceeb0c", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/d9806674-58aa-494c-9288-0f1a0bceeb0c", "rel": "self"}, {"href": "http://localhost/nodes/d9806674-58aa-494c-9288-0f1a0bceeb0c", "rel": "bookmark"}]}, {"uuid": "14f6c682-357a-4daa-912e-8fc3dddc972f", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/14f6c682-357a-4daa-912e-8fc3dddc972f", "rel": "self"}, {"href": "http://localhost/nodes/14f6c682-357a-4daa-912e-8fc3dddc972f", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.052937s] ... 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-33c6382a-13a7-4e49-ae04-bfb6192fc4e1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.133837s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70b32580-43d8-4074-a7d0-6a90305b0643 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": "2024-09-05T08:47:46.922091+00:00", "updated_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.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.062011s] ... 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-577a5238-7385-4e2f-88e6-09df8f80f221 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.110429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e49ab934-45ff-44b1-bc24-7f7f1f17c215 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": "f1e2ada1-2fe4-4023-85d5-b474575c0a55", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/f1e2ada1-2fe4-4023-85d5-b474575c0a55", "rel": "self"}, {"href": "http://localhost/nodes/f1e2ada1-2fe4-4023-85d5-b474575c0a55", "rel": "bookmark"}]}, {"uuid": "961551a1-f48a-4c3d-8677-39db5c1870c5", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/961551a1-f48a-4c3d-8677-39db5c1870c5", "rel": "self"}, {"href": "http://localhost/nodes/961551a1-f48a-4c3d-8677-39db5c1870c5", "rel": "bookmark"}]}, {"uuid": "82b46058-0dd2-4c1f-be3b-ff0ca090a793", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/82b46058-0dd2-4c1f-be3b-ff0ca090a793", "rel": "self"}, {"href": "http://localhost/nodes/82b46058-0dd2-4c1f-be3b-ff0ca090a793", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.374987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3577cf8f-7a5a-4b73-971b-335011a97d90 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//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.080618s] ... 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-1aee1e60-490e-4894-999e-f43dc7103ed5 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member [0.142957s] ... 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-bdb8b7ea-fde1-4bc1-a9dc-72b4695a04ba X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_collection_fields_for_nova [0.098604s] ... 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-cd53b498-32b2-4adc-a031-6fdc815ae992 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": "f8ce8e0d-5e5e-4ca2-960b-ab10f9a1dc62", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "c5bf5710-bb14-4989-b971-256785595966", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/f8ce8e0d-5e5e-4ca2-960b-ab10f9a1dc62", "rel": "self"}, {"href": "http://localhost/nodes/f8ce8e0d-5e5e-4ca2-960b-ab10f9a1dc62", "rel": "bookmark"}]}, {"uuid": "29fecd91-5e06-44a6-8dca-7cfacf9d0830", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "fd42ed95-e96f-4af7-90bc-b82bfd41c81d", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/29fecd91-5e06-44a6-8dca-7cfacf9d0830", "rel": "self"}, {"href": "http://localhost/nodes/29fecd91-5e06-44a6-8dca-7cfacf9d0830", "rel": "bookmark"}]}, {"uuid": "3a9600e7-5051-455d-b8d2-3f94216d73a6", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "d7505baf-c834-4bac-b7bd-99fa633a3b05", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/3a9600e7-5051-455d-b8d2-3f94216d73a6", "rel": "self"}, {"href": "http://localhost/nodes/3a9600e7-5051-455d-b8d2-3f94216d73a6", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.070960s] ... 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-9eb3ee8f-6e45-4ea0-a786-de28aa733666 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.070711s] ... 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-d8d1e16b-394e-4429-bc72-f4150fdc1a26 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.047861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05225749-4396-4305-9571-9b59fd509ba9 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/5558705b-1beb-44e1-b5e4-c0a59daeadeb", "rel": "self"}, {"href": "http://localhost/nodes/5558705b-1beb-44e1-b5e4-c0a59daeadeb", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/3554e9c0-e179-4143-a088-fabe3a9b13a4", "rel": "self"}, {"href": "http://localhost/nodes/3554e9c0-e179-4143-a088-fabe3a9b13a4", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=3554e9c0-e179-4143-a088-fabe3a9b13a4"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.086869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b397e414-5991-40a2-8bbd-ba794c823864 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": "2024-09-05T08:47:47.203177+00:00", "updated_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.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.068227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-eb799df1-bb4d-4b6e-b23e-6af1c76f861a 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.TestListNodes.test_get_conductor_field [0.049089s] ... 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-05816108-04db-4928-aea6-3058ba4e1a61 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_notification_utils.APINotifyTestCase.test_chassis_notification [0.023346s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.025683s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.025630s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.077369s] ... 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-ec4ee618-99af-4ac3-a1e9-b5beeb5d4304 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_node.TestPut.test_inspect_validation_failed_status_code [0.152456s] ... 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-d101361f-535f-4a18-8125-4ddab0d83830 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.153351s] ... 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-4d3bcede-c3b6-405c-85b9-4622af08e017 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.049805s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.021289s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.060494s] ... 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-69051da1-8a83-4d45-b7fe-7bf5cab1839d 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.035120s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.025267s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.091693s] ... 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-1ccffa15-15d4-45eb-8f45-dcb4eb449bbd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.057224s] ... 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-dd75b2ca-04a7-4a28-9b16-c3102cdfc48a 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_notification_utils.APINotifyTestCase.test_portgroup_notification [0.028849s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.148610s] ... 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-aa36be3f-4fba-4a5f-8e09-73a05d52ce60 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_port.TestDelete.test_delete_port_byaddress [0.046730s] ... 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-52e2533a-85da-4c53-80b6-77180f3ff45e 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.088430s] ... 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-7ffb5f30-d505-494a-a920-def906e068b6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestListNodes.test_get_console_information [0.106861s] ... 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-3298cd34-6ac6-4d81-90b0-84753338db17 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"}} {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.070031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-b097b764-a4a3-4127-b3f8-a8a14491d862 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.TestPut.test_manage_from_available [0.141837s] ... 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-6737bc9a-0770-4bfb-8670-56fa86e92647 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.091643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-39761a6c-16b6-48bf-b2e9-87eb61963ba0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.060637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-aa863eca-3466-406c-b1e6-42dd244bc9b7 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.062526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cfc40e0b-c0b3-4c4c-b69e-214b82f6f9b2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_console_information_by_name [0.131380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cba4f6f2-8f93-4553-a0ee-bb9fc1d8aa93 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"}} {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.062193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/ca45f361-a203-4866-81f6-674ac0fa430f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5f0bfeed-fd40-43da-85eb-ef37410e0aca 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.070753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3f068877-347f-4db1-9fd9-60906dd9f95d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestListPorts.test_collection_links [0.064243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddcdb99e-23bf-4be8-a139-bb93dea40b4b 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": "8e9f3652-13d6-45d2-be73-774d03aa64b6", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/8e9f3652-13d6-45d2-be73-774d03aa64b6", "rel": "self"}, {"href": "http://localhost/ports/8e9f3652-13d6-45d2-be73-774d03aa64b6", "rel": "bookmark"}]}, {"uuid": "c9627525-dcfe-4c00-80db-1bccfcd56da1", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c9627525-dcfe-4c00-80db-1bccfcd56da1", "rel": "self"}, {"href": "http://localhost/ports/c9627525-dcfe-4c00-80db-1bccfcd56da1", "rel": "bookmark"}]}, {"uuid": "62e74018-a88b-4e70-b036-45a6213d4c09", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/62e74018-a88b-4e70-b036-45a6213d4c09", "rel": "self"}, {"href": "http://localhost/ports/62e74018-a88b-4e70-b036-45a6213d4c09", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=62e74018-a88b-4e70-b036-45a6213d4c09"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.163638s] ... 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-fb4129d0-5bbe-4e94-9b99-a61b54913400 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-35964079-64d8-44c1-b978-babfbcb925c7 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.101434s] ... 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-3385ae73-551d-4378-995e-30056210b83f 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} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.077992s] ... 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-385059ff-1f2f-4eed-a1a9-0e9cb2c0271e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.076435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0498c51-28fb-4a3f-b90b-a880dd70c521 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": "294e4778-7f6e-4104-a670-eefe445297c4", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/294e4778-7f6e-4104-a670-eefe445297c4", "rel": "self"}, {"href": "http://localhost/ports/294e4778-7f6e-4104-a670-eefe445297c4", "rel": "bookmark"}]}, {"uuid": "a58253a8-ad48-422d-ac93-2e9e2876bc34", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a58253a8-ad48-422d-ac93-2e9e2876bc34", "rel": "self"}, {"href": "http://localhost/ports/a58253a8-ad48-422d-ac93-2e9e2876bc34", "rel": "bookmark"}]}, {"uuid": "ec37a4f7-b185-4622-be8f-6e3d36e63a75", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/ec37a4f7-b185-4622-be8f-6e3d36e63a75", "rel": "self"}, {"href": "http://localhost/ports/ec37a4f7-b185-4622-be8f-6e3d36e63a75", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=ec37a4f7-b185-4622-be8f-6e3d36e63a75"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.096530s] ... 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-8a345168-29d4-49ce-8f97-2afda726d46f 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.064410s] ... 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-0b4463c5-fde6-42c6-9872-9a86597b4b78 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.074247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de70a06d-4187-4bd0-95bf-d402b07046a9 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": "ff58add1-8783-44c0-b341-d0cd5d579a77", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/ff58add1-8783-44c0-b341-d0cd5d579a77", "rel": "self"}, {"href": "http://localhost/ports/ff58add1-8783-44c0-b341-d0cd5d579a77", "rel": "bookmark"}]}, {"uuid": "257ebfcb-65db-4023-9a3f-3aac96e1e8c3", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/257ebfcb-65db-4023-9a3f-3aac96e1e8c3", "rel": "self"}, {"href": "http://localhost/ports/257ebfcb-65db-4023-9a3f-3aac96e1e8c3", "rel": "bookmark"}]}, {"uuid": "69b2e692-7b36-4d59-aaeb-8626e82f3d7d", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/69b2e692-7b36-4d59-aaeb-8626e82f3d7d", "rel": "self"}, {"href": "http://localhost/ports/69b2e692-7b36-4d59-aaeb-8626e82f3d7d", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=69b2e692-7b36-4d59-aaeb-8626e82f3d7d"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.053734s] ... 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-837868f2-f2d1-4eec-b30c-2b1253aa0f20 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.TestPut.test_power_state_by_name_unsupported [0.050983s] ... 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-83f28ab9-e47b-4f73-ba13-434197c9ba7a 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_port.TestListPorts.test_detail [0.090641s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8091f92e-159b-4091-9b9d-3ca68c99ba7e 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": "2024-09-05T08:47:48.010659+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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.119154s] ... 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-d8d217fc-3036-470a-b5d8-3f09554872f8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.047705s] ... 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-b1159966-84dd-4516-9bc9-d1ca4b0859e2 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.039863s] ... 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-f8dcdd19-ae13-4733-9b66-b34e53cda768 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_port.TestListPorts.test_detail_against_single [0.074580s] ... 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-abde217a-e10d-43b4-978e-4c84dcfb612b 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin [0.102457s] ... 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-fdbc6916-be9f-4644-8e8d-83b87afc01ad X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.067214s] ... 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-693a50c1-b63e-482c-a368-a69d6010fca0 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.372486s] ... 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-b3a494d9-2d1a-4652-a6c6-030fbd899b5d 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_port.TestListPorts.test_detail_by_node_name_not_supported [0.079116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f90ade4d-165f-4476-ba34-9a3254984f7d 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_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.049247s] ... 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-c0d7306b-3609-4a58-bba3-ab8ba062f446 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.044221s] ... 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-0141f0d4-8b0a-47cd-80fd-eb622e4efa79 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.087127s] ... 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-eaf2ba85-aa42-49b9-ad78-c0b2a81d4011 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.044298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-38c330d7-f377-4f64-9024-f90926db273f 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": "2024-09-05T08:47:48.254093+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.052663s] ... 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-b354e0fb-8c48-4433-831c-4ebfd8067caf 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.TestListNodes.test_get_custom_fields_invalid_fields [0.066720s] ... 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-2e91459c-a011-4cdf-a6fe-f834ca16e7b2 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.075806s] ... 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-10662e84-2814-4163-be6a-b59a8c6deade X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.073199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbbd73db-5a61-4d7a-9b7d-a1537bf91ccd 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": "2024-09-05T08:47:48.335319+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.053167s] ... 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-320756b8-4b8e-4c5b-9aba-28e851d3beee X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.056327s] ... 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-3ae78ac1-3da9-4fb5-a04d-db01b32121f3 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.049675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0127edca-4eb1-41bf-bf9d-b7b29932030a 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-c279b35e-62b4-439d-b0e3-c4e1f2f89b72 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.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.071612s] ... 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-cdecd521-0681-40a8-b22c-c4b32b7889be X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.064976s] ... 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-dad5bbbc-be52-499c-90a3-426fa80486fc 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.055524s] ... 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-91c99d10-f96f-4ff9-a8b7-1661dfc4dd85 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"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.054622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6407cf2-3cb2-487f-b8ad-f3166bd7fc2d 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": "1ebcd0b8-ede9-4556-a887-a9361c01e6a9", "created_at": "2024-09-05T08:47:48.439761+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/1ebcd0b8-ede9-4556-a887-a9361c01e6a9", "rel": "self"}, {"href": "http://localhost/ports/1ebcd0b8-ede9-4556-a887-a9361c01e6a9", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "2ce0b447-9cf7-41ac-b648-fff97528e5c0", "created_at": "2024-09-05T08:47:48.446310+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/2ce0b447-9cf7-41ac-b648-fff97528e5c0", "rel": "self"}, {"href": "http://localhost/ports/2ce0b447-9cf7-41ac-b648-fff97528e5c0", "rel": "bookmark"}], "portgroup_uuid": null}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member [0.068643s] ... 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-74174d8a-d2bc-44b4-a199-c9d59b3e9dee X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.043736s] ... 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-270ec683-3378-4629-839b-354725617993 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_port.TestListPorts.test_detail_sort_key_not_allowed [0.032633s] ... 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-5330b8dd-ca57-4b18-9ca9-62ecfc919373 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_node.TestListNodes.test_get_indicator_state_versioning [0.039831s] ... 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-d1cfec5f-f417-4372-b5e7-e517144b0cea 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_port.TestListPorts.test_detail_using_query_and_fields [0.035048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-04277101-264d-4efa-812d-32b4f90f1024 X-Openstack-Ironic-Api-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_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.107971s] ... 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-df91cace-1ab8-4807-b33f-853caed54681 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.077181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-64e7c53f-2075-4b73-8e9d-dfd3b7f49023 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.046379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19003be5-55e9-433f-8e07-614b4e76e727 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.053865s] ... 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-5f135e48-b1e2-4663-86ad-113fb4347b92 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field [0.084863s] ... 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-5610b6ec-320e-4672-b285-171fb2e1da82 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.045116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ca153f1-2fbe-4b2f-bc26-f6357c6c7b68 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.052385s] ... 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-8af5f2eb-4e35-42e9-b62a-f36800c16032 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.087307s] ... 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-f7090fba-eab1-4124-8f3c-7ab847a28ffa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.035781s] ... 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-e0100562-938e-436f-9676-f497eabeb7db 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_node.TestListNodes.test_get_network_interface_fields [0.060092s] ... 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-d7b58896-6cdc-4d48-9875-d756a1067797 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.052792s] ... 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-0fc560a8-19f8-45ce-90c8-711be46b2dbe 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_port.TestListPorts.test_empty [0.072586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae237630-081d-4e61-8640-51d6f4b4b3b1 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_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.060155s] ... 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-fcc8a188-ec2c-4e7b-ac7f-d527ddeef488 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.099300s] ... 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-18759de1-54bd-4585-9c8e-e5c2b2997ff4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.046401s] ... 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-0cec70e9-6adb-4bbc-99b1-64ddb988d77f 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_port.TestListPorts.test_get_all_by_node_name_non_admin [0.064290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8f18728-3ccd-4bc3-ae70-e83de56c622f 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": "21551c29-b52c-431f-adb5-cffb82023440", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/21551c29-b52c-431f-adb5-cffb82023440", "rel": "self"}, {"href": "http://localhost/ports/21551c29-b52c-431f-adb5-cffb82023440", "rel": "bookmark"}]}, {"uuid": "6e5deff9-f7b2-4011-b621-dac905169328", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/6e5deff9-f7b2-4011-b621-dac905169328", "rel": "self"}, {"href": "http://localhost/ports/6e5deff9-f7b2-4011-b621-dac905169328", "rel": "bookmark"}]}, {"uuid": "6b5653ef-2315-42d5-84e4-e03496e4682c", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/6b5653ef-2315-42d5-84e4-e03496e4682c", "rel": "self"}, {"href": "http://localhost/ports/6b5653ef-2315-42d5-84e4-e03496e4682c", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.069055s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb0b9738-fbba-4a20-a485-348a93c9c6ba 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-4e58d246-2f01-4f38-b2bd-c7a66935489a 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": "b6d5e6e6-387b-4453-a6bf-11dc0946dd37", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/b6d5e6e6-387b-4453-a6bf-11dc0946dd37", "rel": "self"}, {"href": "http://localhost/nodes/b6d5e6e6-387b-4453-a6bf-11dc0946dd37", "rel": "bookmark"}]}, {"uuid": "64c00d8f-6bf9-48c1-beb7-af5933740b1f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/64c00d8f-6bf9-48c1-beb7-af5933740b1f", "rel": "self"}, {"href": "http://localhost/nodes/64c00d8f-6bf9-48c1-beb7-af5933740b1f", "rel": "bookmark"}]}]} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5523c4e-437f-4688-83a8-04b90dde526a 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": "64c00d8f-6bf9-48c1-beb7-af5933740b1f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/64c00d8f-6bf9-48c1-beb7-af5933740b1f", "rel": "self"}, {"href": "http://localhost/nodes/64c00d8f-6bf9-48c1-beb7-af5933740b1f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.067536s] ... 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-09d96815-6efc-42ed-8d96-2f09dc66d659 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.079358s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3ef0ca52-fbf0-4e49-88c2-9da9e017fe17 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.076235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9991a1f-4e53-4ee2-bb25-96fbfe3aee87 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": "e31e3e02-02c3-4325-820e-920ec8e62757", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e31e3e02-02c3-4325-820e-920ec8e62757", "rel": "self"}, {"href": "http://localhost/nodes/e31e3e02-02c3-4325-820e-920ec8e62757", "rel": "bookmark"}]}]} GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21a725ed-9435-4fdd-b9bd-91552142d259 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": "ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc", "rel": "self"}, {"href": "http://localhost/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b514b5c1-064c-4c0d-881a-4503701f83a7 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": "e31e3e02-02c3-4325-820e-920ec8e62757", "created_at": "2024-09-05T08:47:48.842437+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/e31e3e02-02c3-4325-820e-920ec8e62757", "rel": "self"}, {"href": "http://localhost/nodes/e31e3e02-02c3-4325-820e-920ec8e62757", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/ports", "rel": "self"}, {"href": "http://localhost/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/states", "rel": "self"}, {"href": "http://localhost/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/volume", "rel": "self"}, {"href": "http://localhost/nodes/e31e3e02-02c3-4325-820e-920ec8e62757/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff382eda-3b23-4773-b 475-49d08cc4d38c 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": "ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc", "created_at": "2024-09-05T08:47:48.844320+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/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc", "rel": "self"}, {"href": "http://localhost/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/states", "rel": "self"}, {"href": "http://localhost/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/ce2f0d78-0bec-4f6a-994d-cc6f48a9a3fc/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.034170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0d476a69-d820-474c-895e-2c7b0f290fc7 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-0bcb04f8-a659-428b-89a6-1f89ab003d75 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_port.TestListPorts.test_get_all_by_node_name_not_supported [0.049129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-79c5d907-5706-4591-93cd-d547cfe04b6f 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_port.TestListPorts.test_get_all_by_node_name_ok [0.069970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96469549-4f9f-4011-ade7-88129a35b14d 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": "2cfb4c87-1033-45f7-9415-032165f79a74", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/2cfb4c87-1033-45f7-9415-032165f79a74", "rel": "self"}, {"href": "http://localhost/ports/2cfb4c87-1033-45f7-9415-032165f79a74", "rel": "bookmark"}]}, {"uuid": "ff756e6f-fc91-4f8a-a45f-c972a60b02fb", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/ff756e6f-fc91-4f8a-a45f-c972a60b02fb", "rel": "self"}, {"href": "http://localhost/ports/ff756e6f-fc91-4f8a-a45f-c972a60b02fb", "rel": "bookmark"}]}, {"uuid": "842066c9-5840-4df3-9d43-aa5927ee2ce9", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/842066c9-5840-4df3-9d43-aa5927ee2ce9", "rel": "self"}, {"href": "http://localhost/ports/842066c9-5840-4df3-9d43-aa5927ee2ce9", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.096732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f461fcc8-4c93-4b9c-8b9e-be1a6c7f36f0 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-57987fcd-7661-4b69-b963-dfad131130b6 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-d5cbdd3a-9b45-4e92-887d-55e6aac3d5e6 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_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.040747s] ... 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-12ea7999-b64b-4ede-ac2f-2fd864122511 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": "2024-09-05T08:47:49.025857+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.036466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ab86ae68-6632-4826-b76e-9e26a621e58e 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.254263s] ... 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-f1021010-789a-4995-9188-17941b91e5b0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.055308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b396c772-c75f-4549-a6f7-6ae0836f7894 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": "2024-09-05T08:47:49.069846+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.082232s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-591ad4a1-c1bc-4ce5-8b03-ce3c737bfca7 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": "38a461fd-8024-42a5-9783-c659fca896d7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38a461fd-8024-42a5-9783-c659fca896d7", "rel": "self"}, {"href": "http://localhost/nodes/38a461fd-8024-42a5-9783-c659fca896d7", "rel": "bookmark"}]}]} GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4574034-0989-4efe-bf57-2fd505662825 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": "28dfec09-760a-4dd8-8811-956b22a15159", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/28dfec09-760a-4dd8-8811-956b22a15159", "rel": "self"}, {"href": "http://localhost/nodes/28dfec09-760a-4dd8-8811-956b22a15159", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.400223s] ... 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-dbedb8ba-70f4-434c-90c6-9ae3bd616141 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_port.TestListPorts.test_get_all_by_portgroup_uuid [0.064066s] ... 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-f4e5d856-8551-4a69-8fe0-4efe312a3fbe 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": "2024-09-05T08:47:49.132785+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.035799s] ... 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-125e39ae-70e8-4301-98b7-23098827bd37 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.126873s] ... 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-40d72270-a12b-45cb-9532-97df25ececab X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_nodes_by_driver [0.073676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f09a2372-0a44-40bf-9b3e-fdc23279ae1f 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": "82a2922d-77df-4938-afb8-53988ae6ac0f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/82a2922d-77df-4938-afb8-53988ae6ac0f", "rel": "self"}, {"href": "http://localhost/nodes/82a2922d-77df-4938-afb8-53988ae6ac0f", "rel": "bookmark"}]}]} GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-437786b2-f3e4-4632-bd3a-e9bc451e9943 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": "4a580520-e855-44c1-9af1-3659a1b73929", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/4a580520-e855-44c1-9af1-3659a1b73929", "rel": "self"}, {"href": "http://localhost/nodes/4a580520-e855-44c1-9af1-3659a1b73929", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.086691s] ... 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-6556f8d6-4869-4b04-aea2-1593d8b599e3 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.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.051979s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-084da584-0fed-48ed-baac-7851a43f36f1 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_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.070051s] ... 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-b12c3801-4dde-46fe-8a71-346515ae9857 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": "2024-09-05T08:47:49.239902+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.056314s] ... 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-9e3604a0-985f-473f-b833-b90b6cf8eb0e 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_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.046913s] ... 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-d12f0652-9373-47e2-bc09-b48062086aaa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": []} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.035900s] ... 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-9a61e6b2-8b4b-4365-8a7f-7dfc73705c99 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.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.048766s] ... 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-ecd4214a-0924-45b3-8756-d82ca8b1e41b 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.161116s] ... 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-5d21e5ca-1ff0-47c5-b0ec-194743c1723a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.166318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2a393c4-0356-4983-ab90-8d7c5e37915d 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": "041d8bc2-5e7e-4469-9ca0-4fea24ffea07", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07", "rel": "self"}, {"href": "http://localhost/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07", "rel": "bookmark"}]}]} GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e30a3b2-2061-46cd-8178-2cabdba47990 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": "b0a7c4b6-2c6a-4136-8479-c74dafa94254", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254", "rel": "self"}, {"href": "http://localhost/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36653c1e-3881-47d7-ab41-518aa8705156 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": "041d8bc2-5e7e-4469-9ca0-4fea24ffea07", "created_at": "2024-09-05T08:47:49.337249+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/041d8bc2-5e7e-4469-9ca0-4fea24ffea07", "rel": "self"}, {"href": "http://localhost/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/ports", "rel": "self"}, {"href": "http://localhost/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/states", "rel": "self"}, {"href": "http://localhost/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/volume", "rel": "self"}, {"href": "http://localhost/nodes/041d8bc2-5e7e-4469-9ca0-4fea24ffea07/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3f127db-f251-4978-a9ad-da0279205d7b 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": "b0a7c4b6-2c6a-4136-8479-c74dafa94254", "created_at": "2024-09-05T08:47:49.344990+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/b0a7c4b6-2c6a-4136-8479-c74dafa94254", "rel": "self"}, {"href": "http://localhost/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/ports", "rel": "self"}, {"href": "http://localhost/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/states", "rel": "self"}, {"href": "http://localhost/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/volume", "rel": "self"}, {"href": "http://localhost/nodes/b0a7c4b6-2c6a-4136-8479-c74dafa94254/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.078971s] ... 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-041c8a93-ec87-4b49-b0ff-aada9ed2da80 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_port.TestListPorts.test_get_collection_custom_fields [0.084484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ac99666-1cf4-469e-b37e-693e098fed5a 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": "4d3b7ac5-05d9-44f9-862a-a68437393ce9", "extra": {}, "links": [{"href": "http://localhost/v1/ports/4d3b7ac5-05d9-44f9-862a-a68437393ce9", "rel": "self"}, {"href": "http://localhost/ports/4d3b7ac5-05d9-44f9-862a-a68437393ce9", "rel": "bookmark"}]}, {"uuid": "02b3ec73-459b-47f2-9a82-11a15aecfce3", "extra": {}, "links": [{"href": "http://localhost/v1/ports/02b3ec73-459b-47f2-9a82-11a15aecfce3", "rel": "self"}, {"href": "http://localhost/ports/02b3ec73-459b-47f2-9a82-11a15aecfce3", "rel": "bookmark"}]}, {"uuid": "0e218b15-c5a8-42cc-be8b-9c9ac2aa587a", "extra": {}, "links": [{"href": "http://localhost/v1/ports/0e218b15-c5a8-42cc-be8b-9c9ac2aa587a", "rel": "self"}, {"href": "http://localhost/ports/0e218b15-c5a8-42cc-be8b-9c9ac2aa587a", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.094654s] ... 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-cc9132d1-644d-4a8d-9198-9d34f08413d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.065505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c686a604-8052-4c30-a250-90602357566d 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-24aafa87-dea1-4f15-93ca-2b4a3434ebdd 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.092995s] ... 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-34bc74cb-080a-4428-a653-5f3ea6347ca7 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_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.096612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b22452f1-e568-4e18-b065-0e9b9ebfecec 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/af54c4eb-6860-4ae5-a134-ab9f5b283408", "rel": "self"}, {"href": "http://localhost/ports/af54c4eb-6860-4ae5-a134-ab9f5b283408", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d48ac241-f3ef-4c7d-a8dd-f0a065ff12e1", "rel": "self"}, {"href": "http://localhost/ports/d48ac241-f3ef-4c7d-a8dd-f0a065ff12e1", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=d48ac241-f3ef-4c7d-a8dd-f0a065ff12e1"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.084859s] ... 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-45233313-520e-4ba6-8683-ca1614a63baf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.054214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2b0a47fa-d8ab-48dd-814e-ca56a37875f8 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-29635374-bdf5-45da-9370-682b6d76b3e1 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.049065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-585cfed5-a2dd-4a06-9171-05f4fcaccc7f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": []} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.068462s] ... 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-d79c6970-94b2-4882-a6ab-c6a54e4bf12b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.092123s] ... 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-8c53d704-6506-400e-9ff3-b37c205e86b7 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.TestListNodes.test_get_nodes_by_invalid_provision_state [0.046840s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-533905aa-f944-4f5e-9723-6c7ccb643987 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_port.TestListPorts.test_get_custom_fields_invalid_fields [0.053636s] ... 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-44f3b619-f056-4efc-aade-c4548da647ed X-Openstack-Ironic-Api-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.TestPut.test_provide_from_manage [0.183611s] ... 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-04140f59-370f-4b29-8f75-a4da0e8ff8b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.091111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34479ccd-e8a0-4aad-bb78-4ed54a54205b 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_port.TestListPorts.test_get_custom_fields_is_smartnic [0.070767s] ... 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-cf579124-0d7c-4c26-b1e4-7a50c5038903 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-4dbee4ad-28fc-46e5-bdb6-3f565cfb97b2 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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.141123s] ... 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-74980770-6f36-410c-9a89-3cee92664ef9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.084129s] ... 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-52e46707-714e-4c56-be57-5dd5f757d115 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.069850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60b99b91-cb3a-45ef-b42c-74724a111154 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_port.TestListPorts.test_get_custom_fields_physical_network [0.067472s] ... 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-6c314380-7013-4c11-9088-7a38cb32df9c 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-17bccfd3-094e-439f-bdf0-310cba5e490a 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.059846s] ... 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-f3e24950-8591-4eb9-be15-4069f5a905c3 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_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.054193s] ... 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-d2e805c0-4134-4414-9311-e0a7bd3993fa 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.133929s] ... 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-2d229b1c-8123-47b0-8e15-df579055d56e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_port.TestListPorts.test_get_one [0.046804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36a8af3d-f613-46fe-9481-8ef5a77a005a 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": "2024-09-05T08:47:49.905623+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.055795s] ... 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-8d070f05-3be2-455d-9029-9c0671abc381 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.TestListNodes.test_get_nodes_by_lessee [0.124389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af2b24bd-aa06-4383-960e-e51a54690cdc 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": "e929d158-08d4-4954-b770-a5e031c4b93a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e929d158-08d4-4954-b770-a5e031c4b93a", "rel": "self"}, {"href": "http://localhost/nodes/e929d158-08d4-4954-b770-a5e031c4b93a", "rel": "bookmark"}]}]} GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47f7cfeb-f607-40b6-a97f-5c1caa8d0c67 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": "06af5554-398d-4685-88e4-27b2448d5564", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/06af5554-398d-4685-88e4-27b2448d5564", "rel": "self"}, {"href": "http://localhost/nodes/06af5554-398d-4685-88e4-27b2448d5564", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a876b9fb-100d-4a03-9d28-7d5e9dd24fca 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": "e929d158-08d4-4954-b770-a5e031c4b93a", "created_at": "2024-09-05T08:47:49.871312+00:00", "updated_at": null, "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/e929d158-08d4-4954-b770-a5e031c4b93a", "rel": "self"}, {"href": "http://localhost/nodes/e929d158-08d4-4954-b770-a5e031c4b93a", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e929d158-08d4-4954-b770-a5e031c4b93a/ports", "rel": "self"}, {"href": "http://localhost/nodes/e929d158-08d4-4954-b770-a5e031c4b93a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e929d158-08d4-4954-b770-a5e031c4b93a/states", "rel": "self"}, {"href": "http://localhost/nodes/e929d158-08d4-4954-b770-a5e031c4b93a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e929d158-08d4-4954-b770-a5e031c4b93a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e929d158-08d4-4954-b770-a5e031c4b93a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e929d158-08d4-4954-b770-a5e031c4b93a/volume", "rel": "self"}, {"href": "http://localhost/nodes/e929d158-08d4-4954- b770-a5e031c4b93a/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72395662-2e24-46ec-afcf-391a70c1225f 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": "06af5554-398d-4685-88e4-27b2448d5564", "created_at": "2024-09-05T08:47:49.873145+00:00", "updated_at": null, "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/06af5554-398d-4685-88e4-27b2448d5564", "rel": "self"}, {"href": "http://localhost/nodes/06af5554-398d-4685-88e4-27b2448d5564", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/06af5554-398d-4685-88e4-27b2448d5564/ports", "rel": "self"}, {"href": "http://localhost/nodes/06af5554-398d-4685-88e4-27b2448d5564/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/06af5554-398d-4685-88e4-27b2448d5564/states", "rel": "self"}, {"href": "http://localhost/nodes/06af5554-398d-4685-88e4-27b2448d5564/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/06af5554-398d-4685-88e4-27b2448d5564/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/06af5554-398d-4685-88e4-27b2448d5564/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/06af5554-398d-4685-88e4-27b2448d5564/volume", "rel": "self"}, {"href": "http://localhost/nodes/06af5554-398d-4685-88e4-27b2448d5564/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.053695s] ... 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-e34505af-1f9e-4806-8b2b-25673a6555b5 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.042676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1ec81345-b19b-49cb-afc8-c2aef302caca 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-d5f97de3-ba86-4507-b189-3cc90d7d1922 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.128013s] ... 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-30d321f9-1ab4-4fa8-af55-8b4602c4e999 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.062952s] ... 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-8fd21a57-63f6-4176-824d-a379496abfd6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.064997s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ebfce33-356c-47b9-a372-f820915ca9c3 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": "5f6f9610-f955-44f2-ae17-9c0737623ed7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7", "rel": "self"}, {"href": "http://localhost/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7", "rel": "bookmark"}]}]} GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3f0f066-41e3-44a3-bce4-0409d05ec732 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": "f3e9c252-b9c7-4219-8e17-c68f66ad1cea", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea", "rel": "self"}, {"href": "http://localhost/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12850d85-bb91-4336-a9b3-fc101a2f29d1 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": "5f6f9610-f955-44f2-ae17-9c0737623ed7", "created_at": "2024-09-05T08:47:50.007944+00:00", "updated_at": null, "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/5f6f9610-f955-44f2-ae17-9c0737623ed7", "rel": "self"}, {"href": "http://localhost/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/ports", "rel": "self"}, {"href": "http://localhost/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/states", "rel": "self"}, {"href": "http://localhost/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/volume", "rel": "self"}, {"href": "http://localhost/nodes/5f6f9610-f955-44f2-ae17-9c0737623ed7/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12f0fec7-8b30-4edc-9448-9ec3fe3e38b2 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": "f3e9c252-b9c7-4219-8e17-c68f66ad1cea", "created_at": "2024-09-05T08:47:50.009737+00:00", "updated_at": null, "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/f3e9c252-b9c7-4219-8e17-c68f66ad1cea", "rel": "self"}, {"href": "http://localhost/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/ports", "rel": "self"}, {"href": "http://localhost/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/states", "rel": "self"}, {"href": "http://localhost/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/volume", "rel": "self"}, {"href": "http://localhost/nodes/f3e9c252-b9c7-4219-8e17-c68f66ad1cea/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin [0.078827s] ... 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-7c282d9f-2df9-4e82-a10d-eba9b6a14887 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.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.053584s] ... 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-b017d44a-b2fe-4f6b-82c6-4cf36194bb2b 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.064533s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-153a2fdd-e6aa-4b17-a958-d626f8ca3ab7 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-7f2f503f-4494-41a1-b74e-658e7761608a 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.TestPut.test_provision_locked_with_correct_state [0.053977s] ... 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-8a090107-466a-4480-abee-eb7cfd754651 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.054304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53cf5aac-16a5-4110-b58f-5ec7665c30f1 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": "64ccb480-fd86-4c7c-b668-75a7ce6896cf", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/64ccb480-fd86-4c7c-b668-75a7ce6896cf", "rel": "self"}, {"href": "http://localhost/nodes/64ccb480-fd86-4c7c-b668-75a7ce6896cf", "rel": "bookmark"}]}]} GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d6805b3-674a-4b74-b652-3f05faa814f3 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": "facd8319-38cb-48d0-ad9e-d7748c7eafa3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/facd8319-38cb-48d0-ad9e-d7748c7eafa3", "rel": "self"}, {"href": "http://localhost/nodes/facd8319-38cb-48d0-ad9e-d7748c7eafa3", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member [0.099218s] ... 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-58a7454c-7ffd-4d50-bbfa-ee95d9f1b3f1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.042086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-701d01b3-4c2f-4fe1-a723-b79c4d7a8bf0 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.075132s] ... 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-34aaa18c-c131-4798-8628-89fc4dffb3ab 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.054364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-122eba52-1798-46e9-8372-28b9268e2c6f 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": "9878f076-d60f-48cb-b1a0-2c29107b487b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/9878f076-d60f-48cb-b1a0-2c29107b487b", "rel": "self"}, {"href": "http://localhost/nodes/9878f076-d60f-48cb-b1a0-2c29107b487b", "rel": "bookmark"}]}]} GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43ba45e7-a674-4b74-93d1-6059df104860 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": "361ba5c2-e2a8-45a2-bd29-7a79a120883a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/361ba5c2-e2a8-45a2-bd29-7a79a120883a", "rel": "self"}, {"href": "http://localhost/nodes/361ba5c2-e2a8-45a2-bd29-7a79a120883a", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.361779s] ... 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-d9310924-467a-47ac-9ee8-1cc905cbd8f9 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.068891s] ... 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-64edbb13-2d5f-4d36-90dc-cdd36c553679 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer [0.113794s] ... 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-07acbec3-1cfc-4607-b1ad-4ae2a41a3262 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} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.056103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50603800-e4df-4ad3-8ee8-56c77277359d 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": "b1e579ed-dcbe-4e78-9177-968a5aad1eee", "created_at": "2024-09-05T08:47:50.300169+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/b1e579ed-dcbe-4e78-9177-968a5aad1eee", "rel": "self"}, {"href": "http://localhost/nodes/b1e579ed-dcbe-4e78-9177-968a5aad1eee", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b1e579ed-dcbe-4e78-9177-968a5aad1eee/ports", "rel": "self"}, {"href": "http://localhost/nodes/b1e579ed-dcbe-4e78-9177-968a5aad1eee/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b1e579ed-dcbe-4e78-9177-968a5aad1eee/states", "rel": "self"}, {"href": "http://localhost/nodes/b1e579ed-dcbe-4e78-9177-968a5aad1eee/states", "rel": "bookmark"}]}]} GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24e04904-1663-4cd6-9dde-0cdf88de0e59 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": "9b48520e-b60b-4dc1-8e86-b1f5fa461883", "created_at": "2024-09-05T08:47:50.302062+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/9b48520e-b60b-4dc1-8e86-b1f5fa461883", "rel": "self"}, {"href": "http://localhost/nodes/9b48520e-b60b-4dc1-8e86-b1f5fa461883", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9b48520e-b60b-4dc1-8e86-b1f5fa461883/ports", "rel": "self"}, {"href": "http://localhost/nodes/9b48520e-b60b-4dc1-8e86-b1f5fa461883/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9b48520e-b60b-4dc1-8e86-b1f5fa461883/states", "rel": "self"}, {"href": "http://localhost/nodes/9b48520e-b60b-4dc1-8e86-b1f5fa461883/states", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.046258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69857030-7a23-45f0-b6ed-a19ed888fdd3 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": "2024-09-05T08:47:50.310211+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.047479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ecfb5a4a-624c-405a-ab6f-f4c16001eec5 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.061307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a52f6c8-418d-4b24-9338-2023ff859e37 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": "2024-09-05T08:47:50.362718+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-97abfb52-c480-42f3-970a-7378a7bb6d17 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": "2024-09-05T08:47:50.362718+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.028560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f2f539ab-00ff-4d8f-8404-0b2427d9fa24 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.097586s] ... 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-6b370f98-75c1-4be4-a6cd-a909e5068039 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.120480s] ... 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-f2eb7617-aba0-400e-a3d3-0110c53d408a 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-a5ab2a8c-284f-40e6-bbfb-eff7657e1969 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-d0698c4d-7b6c-4f33-8ebe-3ca169264fc3 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-0e03dba6-d3f5-4739-84b6-019a9726ba51 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_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.066419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a77524a-dac0-4f74-8843-c61a59d782bd 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": "2024-09-05T08:47:50.433049+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-670de1db-5002-4898-8dda-127c7c1c58a9 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": "2024-09-05T08:47:50.433049+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.074785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-87d53a2d-1ad0-478d-af72-654fdb10f3a8 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member [0.102895s] ... 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-2c4d5211-ec8b-401a-8b75-baa2cf3d0063 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.078410s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53567254-a4fc-483f-919e-86fa8f52bb7b 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": "2024-09-05T08:47:50.511525+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-b5916da3-b632-472a-ac28-d6e3f2838935 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": "2024-09-05T08:47:50.511525+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.099470s] ... 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-325d6ebc-d8ec-40c9-8a29-deadb15be7d4 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-030b9d3d-a64a-4646-9912-aeec82d44fae 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-80fbcf05-3880-415f-a579-31ba7d8ecbbc 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-c205571d-0be6-49b1-9e43-fc46e8f7bd88 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.076042s] ... 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-81c341de-e166-41ae-b458-d1d60a6533a0 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.090594s] ... 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-8d0549e9-b1d3-4fb8-b7b4-dfd456abc137 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.056185s] ... 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-0620967f-a115-4a78-b38f-44898a354849 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.070937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-32bbf3d4-0bc1-4d06-8e9c-1ff73897a362 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": "2024-09-05T08:47:50.568554+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-18decaf9-0b9e-4359-b84d-7762f59fea8a 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": "2024-09-05T08:47:50.568554+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-9d2a8fb5-60a2-4eb1-bd6f-fef32be75acb 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": "2024-09-05T08:47:50.568554+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"port_id": "42", "vtep-logical-switch": "lswitch", "vtep-physical-switch": "jswitch"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.062118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0230bf32-5a98-4edf-8e04-e1b74ea31a3f 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": "2024-09-05T08:47:50.599391+00:00", "updated_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.TestListNodes.test_get_one_configdrive_dict [0.043886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b1ef691-bede-49a4-bb27-6c3bdf2248fc 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": "2024-09-05T08:47:50.645508+00:00", "updated_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.TestPut.test_provision_unexpected_rescue_password [0.056436s] ... 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-fbb1b4aa-3d9e-404c-be75-dc1fac78b78a 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.077779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-723c36fc-df80-4073-ba8f-fedf6d01dc1f 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": "2024-09-05T08:47:50.644996+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-33f987d3-cffc-464b-8442-fdbca8089c11 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": "2024-09-05T08:47:50.644996+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.088672s] ... 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-3667f09d-720f-4f9e-a8dd-6a497591f231 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.036542s] ... 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-50e6f188-2ea6-490a-9401-a70e411afb65 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.TestListNodes.test_get_one_custom_fields_as_list [0.056341s] ... 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-70a35ac5-d889-42b8-805e-4fdf2ba802b4 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.093583s] ... 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-23586cb1-4c4d-4414-af76-dcfe1f5b780e 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-f9837ce8-9a80-432e-80fb-be709a3cc0c3 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-86125a59-792e-463e-a11c-b78aba3940b6 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_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.067415s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2b5c815-705f-4f8e-993a-1fb88d9c0159 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": "2024-09-05T08:47:50.730691+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.096079s] ... 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-29df75d3-dfb3-40d6-9175-438270bb08fa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_one_custom_fields_show_password [0.044887s] ... 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-3f53da53-8a22-4e21-aefc-c774e31f80bf 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.062782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-390de12a-e61c-4697-8378-276ed7c0797d 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": "2024-09-05T08:47:50.789046+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-779796af-0e4b-4842-85c2-b11e172e9e1b 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": "2024-09-05T08:47:50.789046+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis [0.036792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb38aad2-db73-4a32-8b78-db1931a5f321 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": "2024-09-05T08:47:50.823156+00:00", "updated_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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.082055s] ... 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-7090d13f-62e6-4225-8382-5f0841f4f2b5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json [0.050981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d839670a-3316-4375-80f2-2caa27c29053 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": "2024-09-05T08:47:50.870903+00:00", "updated_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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.093652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/3e653f2f-bf82-4954-9ec2-de8982996010 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a10834f-a99f-46a7-89ed-00b7dad23f42 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3e653f2f-bf82-4954-9ec2-de8982996010", "created_at": "2024-09-05T08:47:50.872340+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/3e653f2f-bf82-4954-9ec2-de8982996010", "rel": "self"}, {"href": "http://localhost/ports/3e653f2f-bf82-4954-9ec2-de8982996010", "rel": "bookmark"}]} GET /v1/ports/3e653f2f-bf82-4954-9ec2-de8982996010 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e43e4cb-7191-483b-a443-e217d01b1928 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3e653f2f-bf82-4954-9ec2-de8982996010", "created_at": "2024-09-05T08:47:50.872340+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/3e653f2f-bf82-4954-9ec2-de8982996010", "rel": "self"}, {"href": "http://localhost/ports/3e653f2f-bf82-4954-9ec2-de8982996010", "rel": "bookmark"}]} GET /ports/3e653f2f-bf82-4954-9ec2-de8982996010 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3530b192-ae26-441f-b08b-bfdff2584517 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3e653f2f-bf82-4954-9ec2-de8982996010", "created_at": "2024-09-05T08:47:50.872340+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/3e653f2f-bf82-4954-9ec2-de8982996010", "rel": "self"}, {"href": "http://localhost/ports/3e653f2f-bf82-4954-9ec2-de8982996010", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.169046s] ... 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-552a1899-0f9c-4ba9-8406-56e932055009 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-486fa4b9-4fd5-4312-a8c0-7f1a66cb7ea5 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-644e858f-618c-491e-b5cb-b4862035775d 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-0bcb3f64-d472-497d-9a6c-a6444bff8e4b 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-1b33efa4-6c53-475e-8ba9-bfe4fc28ae67 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.054299s] ... 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-d910ade3-4217-4c08-9da1-4e9404e17161 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 , for clean_steps: foo\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.109190s] ... 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-5abcb145-9a42-4cb2-8c5f-d3fb22e2e90b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestListPorts.test_links_public_url [0.077274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/5dc0c4af-dcc9-4d09-8254-d983b75368e2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-383eb461-82de-40e7-b165-21a976576a00 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5dc0c4af-dcc9-4d09-8254-d983b75368e2", "created_at": "2024-09-05T08:47:50.944993+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/5dc0c4af-dcc9-4d09-8254-d983b75368e2", "rel": "self"}, {"href": "http://foo/ports/5dc0c4af-dcc9-4d09-8254-d983b75368e2", "rel": "bookmark"}]} GET /v1/ports/5dc0c4af-dcc9-4d09-8254-d983b75368e2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-681ea053-b2ed-4f6d-a6a7-4dde9337fd32 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5dc0c4af-dcc9-4d09-8254-d983b75368e2", "created_at": "2024-09-05T08:47:50.944993+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/5dc0c4af-dcc9-4d09-8254-d983b75368e2", "rel": "self"}, {"href": "http://foo/ports/5dc0c4af-dcc9-4d09-8254-d983b75368e2", "rel": "bookmark"}]} GET /ports/5dc0c4af-dcc9-4d09-8254-d983b75368e2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66a83559-87ee-444b-8112-ec5d409c559c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5dc0c4af-dcc9-4d09-8254-d983b75368e2", "created_at": "2024-09-05T08:47:50.944993+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/5dc0c4af-dcc9-4d09-8254-d983b75368e2", "rel": "self"}, {"href": "http://foo/ports/5dc0c4af-dcc9-4d09-8254-d983b75368e2", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.042722s] ... 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-8cebe757-0d21-4c7f-b6af-989dd11497b4 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_port.TestListPorts.test_list_non_admin_forbidden [0.045753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b2e2174e-003c-4920-a901-b10537bf06d5 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.040517s] ... 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-41265110-8462-46a9-aab0-c6170132d3e4 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.TestListPorts.test_list_non_admin_forbidden_no_project [0.050957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-997535b6-597e-4afa-982b-799156e83327 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.120241s] ... 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-d8036fa2-a330-4790-9707-a29623ea8934 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestPut.test_provision_with_deploy_after_deployfail [0.060124s] ... 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-217aebb1-584a-43c7-839a-bdf34cc282ea 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.TestListPorts.test_many [0.063996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0948360a-f7b0-4b04-8fa1-3ba51d54c83a 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": "d1099877-2874-4c2e-85db-79967743121f", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/d1099877-2874-4c2e-85db-79967743121f", "rel": "self"}, {"href": "http://localhost/ports/d1099877-2874-4c2e-85db-79967743121f", "rel": "bookmark"}]}, {"uuid": "adb1cc89-39bf-4625-a8fe-44451b292cc6", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/adb1cc89-39bf-4625-a8fe-44451b292cc6", "rel": "self"}, {"href": "http://localhost/ports/adb1cc89-39bf-4625-a8fe-44451b292cc6", "rel": "bookmark"}]}, {"uuid": "4e299308-91e2-4de4-9bb9-97c0569f9283", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/4e299308-91e2-4de4-9bb9-97c0569f9283", "rel": "self"}, {"href": "http://localhost/ports/4e299308-91e2-4de4-9bb9-97c0569f9283", "rel": "bookmark"}]}, {"uuid": "380ed762-e7c3-47f5-827d-8ac783f1286a", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/380ed762-e7c3-47f5-827d-8ac783f1286a", "rel": "self"}, {"href": "http://localhost/ports/380ed762-e7c3-47f5-827d-8ac783f1286a", "rel": "bookmark"}]}, {"uuid": "0e3cf157-e611-42d5-aa70-c39e8c1970ce", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/0e3cf157-e611-42d5-aa70-c39e8c1970ce", "rel": "self"}, {"href": "http://localhost/ports/0e3cf157-e611-42d5-aa70-c39e8c1970ce", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.045905s] ... 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-3be841ad-b631-4b10-a66b-8b934bb3e6cf 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.091750s] ... 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-7f13147e-3983-4910-b441-b7b12564ee2a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestListPorts.test_many_non_admin [0.052149s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f074e5e0-02d6-4942-a1a3-8f00419f2c3a 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": "6df5be1b-5118-481e-adcf-f0562c5c9b8b", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/6df5be1b-5118-481e-adcf-f0562c5c9b8b", "rel": "self"}, {"href": "http://localhost/ports/6df5be1b-5118-481e-adcf-f0562c5c9b8b", "rel": "bookmark"}]}, {"uuid": "27bf037d-ee4f-45be-8394-2affa918db6b", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/27bf037d-ee4f-45be-8394-2affa918db6b", "rel": "self"}, {"href": "http://localhost/ports/27bf037d-ee4f-45be-8394-2affa918db6b", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.056442s] ... 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-b09c2914-4e72-40e2-8ef7-4ead5bf6ab84 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.347410s] ... 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-200767c3-ba78-40cf-b866-8caae3ebe6aa 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": "2024-09-05T08:47:50.924250+00:00", "updated_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.TestListPorts.test_one [0.042398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59bad12d-9317-47a3-9146-f25c51cadf20 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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.049346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aebfee3b-8f14-46ad-8e3c-9744824e979d 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": "2024-09-05T08:47:51.269454+00:00", "updated_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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.094011s] ... 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-12db8b26-8a4f-4032-9cab-cd53910b0286 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.059191s] ... 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-2279cf97-9aa7-45fc-91b6-a0759d81aa66 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.049954s] ... 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-312bb50c-2666-4a1f-acbb-dd502763dd62 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": "95587fb0-4a3e-4ddc-97b6-126cc955733b", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/95587fb0-4a3e-4ddc-97b6-126cc955733b", "rel": "self"}, {"href": "http://localhost/ports/95587fb0-4a3e-4ddc-97b6-126cc955733b", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret [0.051360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0012eeb5-95cb-4b8f-9292-29a48f6c6ad7 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": "2024-09-05T08:47:51.313838+00:00", "updated_at": null, "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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.048060s] ... 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-62db8f5c-58b4-4d4c-857f-0e1485672ade 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 , , for configdrive: ['aabb']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.044791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b0bb33e-68b6-458b-9fa9-9b26730dd709 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_node.TestListNodes.test_get_one_with_suffix [0.036411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8b5dc83-74dd-4e11-ab45-21c586fe4ece 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": "2024-09-05T08:47:51.360923+00:00", "updated_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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member [0.099133s] ... 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-078edf2b-b43d-4ec8-8210-9510a990e262 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin [0.061812s] ... 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-200dd578-f1bb-424e-9e8c-01be49129baf 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": "b87c0118-6c23-4c8c-b4f4-3471029b2f79", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/b87c0118-6c23-4c8c-b4f4-3471029b2f79", "rel": "self"}, {"href": "http://localhost/ports/b87c0118-6c23-4c8c-b4f4-3471029b2f79", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.067284s] ... 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-a27238ad-c780-4873-bfff-7671c8e8ca05 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.048674s] ... 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-73ff3f53-8864-4667-bb29-f55f8d24a110 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match [0.050728s] ... 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-cca5ddd4-062f-4b35-99a4-bab15759951c 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_node.TestListNodes.test_get_protected_fields [0.051944s] ... 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-56617d74-bab1-4c33-a9a7-0ad4d0578abd 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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer [0.099033s] ... 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-64304ae8-87b5-4c31-9163-3fcddd520546 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.034892s] ... 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-78d23b15-7eb0-4ff5-aaa9-46f52cfaafb7 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_node.TestListNodes.test_get_retired_fields [0.044225s] ... 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-ded93e85-5322-4e5e-abf5-e3ba99049f8c 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_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.039718s] ... 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_node.TestListNodes.test_get_storage_interface_fields [0.042154s] ... 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-15f3a2b3-5abb-454a-9042-697b3833e83e 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.029168s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.088050s] ... 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-eec65c7e-16b3-4993-9050-2a093b70dafa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestListPorts.test_sort_key [0.047696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2c75391-97ae-48f8-8f13-b4fe074bf884 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": "64c7c46c-1da6-42a6-835e-76ba2329eb78", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/64c7c46c-1da6-42a6-835e-76ba2329eb78", "rel": "self"}, {"href": "http://localhost/ports/64c7c46c-1da6-42a6-835e-76ba2329eb78", "rel": "bookmark"}]}, {"uuid": "bc44a938-a16e-4e73-875e-e5a8b5d43ffb", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/bc44a938-a16e-4e73-875e-e5a8b5d43ffb", "rel": "self"}, {"href": "http://localhost/ports/bc44a938-a16e-4e73-875e-e5a8b5d43ffb", "rel": "bookmark"}]}, {"uuid": "eca0ef95-9063-49c4-ba1a-348286d6591d", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/eca0ef95-9063-49c4-ba1a-348286d6591d", "rel": "self"}, {"href": "http://localhost/ports/eca0ef95-9063-49c4-ba1a-348286d6591d", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.050751s] ... 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-3996eec7-d58e-489b-81cf-7e18214838da 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_port.TestListPorts.test_sort_key_allowed [0.047245s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c97da43-f6c3-424a-b78f-c5b971128d28 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": "36b264e9-9cb6-4fef-9cce-10194fd1c6d6", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/36b264e9-9cb6-4fef-9cce-10194fd1c6d6", "rel": "self"}, {"href": "http://localhost/ports/36b264e9-9cb6-4fef-9cce-10194fd1c6d6", "rel": "bookmark"}]}, {"uuid": "56008d9f-2061-4f78-b2b6-ca484696deef", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/56008d9f-2061-4f78-b2b6-ca484696deef", "rel": "self"}, {"href": "http://localhost/ports/56008d9f-2061-4f78-b2b6-ca484696deef", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.051192s] ... 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-bf9a3dfc-d6f7-4498-9cf7-ea3cb801b6a5 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"]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.105319s] ... 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-887e50b5-491b-42fb-96ec-8017ee1e35a7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestPut.test_provision_with_deploy_configdrive_url [0.286801s] ... 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-89bb115e-49d9-4a00-99b5-72f442e5ea46 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.TestListPorts.test_sort_key_invalid [0.050967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b249e0b9-d71d-4bcd-8d42-efdaaf07ef7b X-Openstack-Ironic-Api-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-506bd1e8-b5b0-4bf6-9ae0-22cd3e52a3c1 X-Openstack-Ironic-Api-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-7fd38d2c-a4ee-4112-afcc-bcde0dd13fa1 X-Openstack-Ironic-Api-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-14ac2401-dbad-4474-8cb5-fbcd34884e72 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.032932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-950d82b0-9099-4d60-bc3d-4abcd0465571 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_node.TestListNodes.test_get_supported_boot_devices_by_name [0.105744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c172d528-6e04-4cdc-a05c-5a3cc01beca2 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"]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.107373s] ... 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-bd42bf6b-9fdb-495b-8047-5e4719986064 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.062490s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea596bb6-089e-4c1f-83d1-09c2d014b056 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": "14200044-6eef-402f-b196-79c91ec67d31", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/14200044-6eef-402f-b196-79c91ec67d31", "rel": "self"}, {"href": "http://localhost/portgroups/14200044-6eef-402f-b196-79c91ec67d31", "rel": "bookmark"}]}, {"uuid": "74da9350-5689-432a-bfc7-7f09a83ed511", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/74da9350-5689-432a-bfc7-7f09a83ed511", "rel": "self"}, {"href": "http://localhost/portgroups/74da9350-5689-432a-bfc7-7f09a83ed511", "rel": "bookmark"}]}, {"uuid": "569f276d-6c2f-4393-89ef-52551bcf299b", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/569f276d-6c2f-4393-89ef-52551bcf299b", "rel": "self"}, {"href": "http://localhost/portgroups/569f276d-6c2f-4393-89ef-52551bcf299b", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=569f276d-6c2f-4393-89ef-52551bcf299b"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps [0.125081s] ... 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-d80562cc-405c-45c8-80d1-7b3b156a564e 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) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.071723s] ... 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-55d1ab17-17d2-4a29-963e-d2abfb4eec4b 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.TestListPortgroups.test_collection_links_custom_fields [0.063280s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b83cbc5-5348-46af-adf0-e38b05038558 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": "befad65a-cd49-478f-a34e-9f05aecafbca", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/befad65a-cd49-478f-a34e-9f05aecafbca", "rel": "self"}, {"href": "http://localhost/portgroups/befad65a-cd49-478f-a34e-9f05aecafbca", "rel": "bookmark"}]}, {"uuid": "77bcc7e2-205f-438d-b342-742fed94e125", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/77bcc7e2-205f-438d-b342-742fed94e125", "rel": "self"}, {"href": "http://localhost/portgroups/77bcc7e2-205f-438d-b342-742fed94e125", "rel": "bookmark"}]}, {"uuid": "ac768f2b-a2ae-4e6a-87d2-785ad5cf66ac", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/ac768f2b-a2ae-4e6a-87d2-785ad5cf66ac", "rel": "self"}, {"href": "http://localhost/portgroups/ac768f2b-a2ae-4e6a-87d2-785ad5cf66ac", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=ac768f2b-a2ae-4e6a-87d2-785ad5cf66ac"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators [0.050435s] ... 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-34168ff7-b934-4a7d-ad6b-de9ff9388e10 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"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin [0.106879s] ... 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-f4f8c5af-ee6f-470c-b49f-6c7c1c93f2cc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.101459s] ... 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-8faac626-9997-4d13-b9dd-517d10df9859 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported [0.044009s] ... 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-c4cf9903-16ad-43a4-9614-dddef95f2594 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.TestListPortgroups.test_collection_links_default_limit [0.075340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60f73ce8-b432-407a-b4b2-79105bb458f8 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": "1323af9e-4f43-4026-83e6-4b1ed59a7b0e", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/1323af9e-4f43-4026-83e6-4b1ed59a7b0e", "rel": "self"}, {"href": "http://localhost/portgroups/1323af9e-4f43-4026-83e6-4b1ed59a7b0e", "rel": "bookmark"}]}, {"uuid": "2133c611-75d5-45ed-8715-16d7de9499cd", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/2133c611-75d5-45ed-8715-16d7de9499cd", "rel": "self"}, {"href": "http://localhost/portgroups/2133c611-75d5-45ed-8715-16d7de9499cd", "rel": "bookmark"}]}, {"uuid": "c118169f-04f6-439c-8ebd-c063c52a0fad", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/c118169f-04f6-439c-8ebd-c063c52a0fad", "rel": "self"}, {"href": "http://localhost/portgroups/c118169f-04f6-439c-8ebd-c063c52a0fad", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=c118169f-04f6-439c-8ebd-c063c52a0fad"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.047620s] ... 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-b4956007-88ff-4341-b8ec-7a6f1b45cbcc 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.TestListPortgroups.test_detail [0.038298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77b9d558-1a13-4825-83c8-3aab1111dccf 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": "2024-09-05T08:47:51.974796+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.042184s] ... 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-89d7f2dd-3589-475c-b22d-27dd305480cf 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.TestListPortgroups.test_detail_against_single [0.040735s] ... 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-5437da9d-bac2-4f22-9b8d-8acbd6e014a8 X-Openstack-Ironic-Api-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_node.TestListNodes.test_get_traits_fields [0.062215s] ... 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-a8d80fd1-4c59-44fc-b26a-c602a623ac32 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.TestPut.test_provision_with_rebuild_configdrive [0.066987s] ... 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-f0ef8ce6-a81a-4ee0-8bf3-ed58daa7633d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.051872s] ... 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-76a1acab-f2f2-4cae-889d-76a72a8ee2d0 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_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.070704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f47e4da7-d4f1-4d5b-a845-f0b024163217 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": "2024-09-05T08:47:52.072468+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.095951s] ... 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-f3256c05-5029-4e9b-8e88-065dc9e3bc22 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_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.059059s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member [0.269722s] ... 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-35c569b6-c50f-4ae8-a788-4bb5343c4a2f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_get_with_allocation [0.077619s] ... 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-9eeb7d71-aa55-4ce9-a6c4-a42428f78910 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": "28fa27e7-12a6-4d56-a306-83d76d0e6067"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.043508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2879cad-90ff-43ab-96c8-b768a91ee40e 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": "2024-09-05T08:47:52.193863+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.049057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e541faed-cba6-4009-8585-d39fefd16663 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": "2024-09-05T08:47:52.208569+00:00", "updated_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-571e5349-6275-41c4-8cb0-b3de692c8694 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": "2024-09-05T08:47:52.208569+00:00", "updated_at": null, "clean_step": {"foo": "bar"}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.047796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd8fe34c-79d3-41c4-9148-468ad4c1f33a 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": "2024-09-05T08:47:52.256898+00:00", "updated_at": null, "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-44462c00-e95d-4ac7-86b1-35cbdc9d1c5d 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": "2024-09-05T08:47:52.256898+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "useful piece", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.121854s] ... 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-c49b7917-9c1c-4dbe-9f7e-167ba8e74ea0 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}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.075381s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63526007-cdbe-4bd2-bb1c-86b86222f4d6 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-89116ce5-736a-4a6d-ab80-2206d534bf52 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.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.048730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce50f841-25b0-4e09-aa50-c8f32fe56c1b 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": "ccb5b852-bc8c-4caf-8c7b-d7bff36ba62d", "created_at": "2024-09-05T08:47:52.319983+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/ccb5b852-bc8c-4caf-8c7b-d7bff36ba62d", "rel": "self"}, {"href": "http://localhost/portgroups/ccb5b852-bc8c-4caf-8c7b-d7bff36ba62d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/ccb5b852-bc8c-4caf-8c7b-d7bff36ba62d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ccb5b852-bc8c-4caf-8c7b-d7bff36ba62d/ports", "rel": "bookmark"}]}, {"uuid": "1ccd6fb8-6317-4972-9c66-823e0c35a4da", "created_at": "2024-09-05T08:47:52.316795+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/1ccd6fb8-6317-4972-9c66-823e0c35a4da", "rel": "self"}, {"href": "http://localhost/portgroups/1ccd6fb8-6317-4972-9c66-823e0c35a4da", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/1ccd6fb8-6317-4972-9c66-823e0c35a4da/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1ccd6fb8-6317-4972-9c66-823e0c35a4da/ports", "rel": "bookmark"}]}, {"uuid": "1a8a4e79-a022-4110-be78-0a36db72ebf4", "created_at": "2024-09-05T08:47:52.312669+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/1a8a4e79-a022-4110-be78-0a36db72ebf4", "rel": "self"}, {"href": "http://localhost/portgroups/1a8a4e79-a022-4110-be78-0a36db72ebf4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/1a8a4e79-a022-4110-be78-0a36db72ebf4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1a8a4e79-a022-4110-be78-0a36db72ebf4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.063821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-192a04fe-23f7-49bd-ab20-3ddef80b1bc2 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": "2024-09-05T08:47:52.316127+00:00", "updated_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-28d2f15b-eb47-412e-80d5-8a74717d8f62 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": "2024-09-05T08:47:52.316127+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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_put_admin [0.199879s] ... 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-b9f4d5b9-6922-4da3-9cdc-81cac451a04a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.058117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3ea0a729-898e-44da-aab5-2720b608ab22 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.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.056143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b44678a-438a-490f-862e-e2271bf95f26 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": "2024-09-05T08:47:52.376745+00:00", "updated_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-34243c35-b234-4ac4-a2c1-05699960edf7 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": "2024-09-05T08:47:52.376745+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.146190s] ... 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-f635ea50-35c6-4392-8f58-536bfee90d2d 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.TestListPortgroups.test_detail_using_query_and_fields [0.048585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1161c9a9-1ef5-4ec9-8972-f2331d893867 X-Openstack-Ironic-Api-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.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.054051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9dbf5800-cbfe-48f4-b10c-948e0a2a70c0 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": "2024-09-05T08:47:52.431593+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-b2d97d0d-e661-4415-84bb-a8559c14ebfc 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": "2024-09-05T08:47:52.431593+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_member [0.090051s] ... 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-feed13f3-a464-4051-84f0-5dc2b27fdf04 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.053171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f6744351-b51a-46a9-820c-88433f8a2b80 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": "2024-09-05T08:47:52.486149+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-12e8b090-1b50-492c-9e90-e03eb0052247 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": "2024-09-05T08:47:52.486149+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "fish", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.108375s] ... 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-888c4940-20c2-4cc8-b1e5-9a40c42419da 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.TestListPortgroups.test_detail_using_query_false_and_fields [0.104264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3989506c-c864-4d4a-9db5-ec8825bf8512 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"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer [0.089568s] ... 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-03d323e8-3a3c-4775-8a66-55447df72ed5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy [0.049404s] ... 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-8a079e59-4e60-471a-9a1a-9c47254702e2 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.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.087454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37f29e6b-e7d6-43ce-a035-67fece61e72e 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": "2024-09-05T08:47:52.565810+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-570de705-cfbc-45e0-a87c-f1fde016cded 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": "2024-09-05T08:47:52.565810+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin [0.068969s] ... 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-80ab8418-f210-44b7-ad20-2ba39d864e39 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_node.TestPut.test_put_raid [0.058243s] ... 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-1e5ae9e8-cda7-49c8-a51e-4f7058584816 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.056440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82bc0813-c534-4870-82c0-cb0061348a11 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": "2024-09-05T08:47:52.630791+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-489f2f83-0b91-4649-8b06-ac6ef1d03af6 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": "2024-09-05T08:47:52.630791+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "foo", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.126556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2b1ad592-53ab-4641-b628-46c52312af0b 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.045237s] ... 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-b1841a97-1fba-4a45-bd10-0d184bc1364d 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.055182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed1d128d-887f-4079-91fe-9d53eb07fae7 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": "2024-09-05T08:47:52.680985+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-20fd62b2-1bdb-4d93-8ef9-9104447a9346 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": "2024-09-05T08:47:52.680985+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uui d": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member [0.112706s] ... 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-6df7482c-daca-48e4-82b3-a435cb55c053 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.074780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-939e531c-380b-4a72-87fd-896b2759b25e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"portgroups": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.060317s] ... 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-80ed0f49-6ac1-40d9-969a-b07d36363513 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.065060s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d2eb50b-4183-4b3d-a9fe-5786229700d4 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": "2024-09-05T08:47:52.736576+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-edf8fe8f-706f-4377-95bd-2c63f025dd17 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": "2024-09-05T08:47:52.736576+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["CUSTOM_1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c 02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.046278s] ... 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-fd0f4ff2-1def-441a-95b8-2aca3d10d4e5 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.054478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4809c2f-978a-4a4f-a880-6b801180db2c 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": "2024-09-05T08:47:52.809157+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-50524fcf-b960-41f5-bc35-e637d0c80cff 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": "2024-09-05T08:47:52.809157+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "b ookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer [0.100702s] ... 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-bbc9015e-21dd-4f4e-854b-4a080a2d2e08 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.093182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-adc313b5-e4fb-4bf4-b581-9bec38e3fa00 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": "c118ec8d-acdd-46cb-a97a-09a5718149a5", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/c118ec8d-acdd-46cb-a97a-09a5718149a5", "rel": "self"}, {"href": "http://localhost/portgroups/c118ec8d-acdd-46cb-a97a-09a5718149a5", "rel": "bookmark"}]}, {"uuid": "7d1728d8-6129-4329-b354-a608f7254005", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/7d1728d8-6129-4329-b354-a608f7254005", "rel": "self"}, {"href": "http://localhost/portgroups/7d1728d8-6129-4329-b354-a608f7254005", "rel": "bookmark"}]}, {"uuid": "dfb58611-0387-4b14-8d6f-107e1b48c42a", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/dfb58611-0387-4b14-8d6f-107e1b48c42a", "rel": "self"}, {"href": "http://localhost/portgroups/dfb58611-0387-4b14-8d6f-107e1b48c42a", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.045670s] ... 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-68bdf3a0-4ef9-4ae3-96cf-ecafc64f231d 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.060103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf92d886-e313-4fb5-bd7d-8a4eb1a83c2b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "created_at": "2024-09-05T08:47:52.851675+00:00", "updated_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/e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "rel": "self"}, {"href": "http://localhost/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf/ports", "rel": "self"}, {"href": "http://localhost/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf/ports", "rel": "bookmark"}]} GET /v1/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e03da492-73d0-45f7-870c-1823777502aa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "created_at": "2024-09-05T08:47:52.851675+00:00", "updated_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/e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "rel": "self"}, {"href": "http://localhost/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf/ports", "rel": "self"}, {"href": "http://localhost/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf/ports", "rel": "bookmark"}]} GET /nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4a3796b-f408-4428-a722-4d8e5f010c65 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "created_at": "2024-09-05T08:47:52.851675+00:00", "updated_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/e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "rel": "self"}, {"href": "http://localhost/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf/ports", "rel": "self"}, {"href": "http://localhost/nodes/e4edf30a-7302-4f9c-8796-fcc9fc137cdf/ports", "rel ": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.052965s] ... 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-ded1db14-192c-4225-b66a-0b709e0f9f2e 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": "2024-09-05T08:47:52.878511+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.052826s] ... 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-9376de2d-2adc-4255-b024-3b0cf5b50933 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_get_admin [0.094996s] ... 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-18bec74a-21cf-4d0d-8ec1-e99e3ec22ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_links_public_url [0.068688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a6c8b6b-927d-4cfb-8567-4525b947ab3b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1c1986ce-c821-41e8-bfa1-173a65973f0d", "created_at": "2024-09-05T08:47:52.914621+00:00", "updated_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/1c1986ce-c821-41e8-bfa1-173a65973f0d", "rel": "self"}, {"href": "http://foo/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d/ports", "rel": "self"}, {"href": "http://foo/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d/ports", "rel": "bookmark"}]} GET /v1/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ec9b1f1-2934-4acc-99d6-c46d3d9bc7fa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1c1986ce-c821-41e8-bfa1-173a65973f0d", "created_at": "2024-09-05T08:47:52.914621+00:00", "updated_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/1c1986ce-c821-41e8-bfa1-173a65973f0d", "rel": "self"}, {"href": "http://foo/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d/ports", "rel": "self"}, {"href": "http://foo/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d/ports", "rel": "bookmark"}]} GET /nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcd19232-6957-43f5-af31-c0ea9380b4ea X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1c1986ce-c821-41e8-bfa1-173a65973f0d", "created_at": "2024-09-05T08:47:52.914621+00:00", "updated_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/1c1986ce-c821-41e8-bfa1-173a65973f0d", "rel": "self"}, {"href": "http://foo/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d/ports", "rel": "self"}, {"href": "http://foo/nodes/1c1986ce-c821-41e8-bfa1-173a65973f0d/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.085277s] ... 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-d88af40f-c095-4df8-b5f0-ee318107ed11 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo [0.074682s] ... 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-7764c4a1-ed78-46a4-884e-056d78ad76dc 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.TestPut.test_secure_boot_invalid_request_nullstr [0.042864s] ... 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-756f952c-100d-42b4-ade7-a747ad87a4b5 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.TestListPortgroups.test_get_collection_custom_fields [0.049972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ee9022f-ef0f-4c08-9965-8ad07f2f947f 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": "6ff74b87-27aa-4f50-a5f1-50a5d98953ae", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/6ff74b87-27aa-4f50-a5f1-50a5d98953ae", "rel": "self"}, {"href": "http://localhost/portgroups/6ff74b87-27aa-4f50-a5f1-50a5d98953ae", "rel": "bookmark"}]}, {"uuid": "5dbbc078-088d-45ea-bd9b-48695a08937b", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/5dbbc078-088d-45ea-bd9b-48695a08937b", "rel": "self"}, {"href": "http://localhost/portgroups/5dbbc078-088d-45ea-bd9b-48695a08937b", "rel": "bookmark"}]}, {"uuid": "ba5655b4-bea5-404e-9899-4c400b64c5f7", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/ba5655b4-bea5-404e-9899-4c400b64c5f7", "rel": "self"}, {"href": "http://localhost/portgroups/ba5655b4-bea5-404e-9899-4c400b64c5f7", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_member [0.106907s] ... 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-bcacb3c9-c64c-48d4-9bd2-40078cc20512 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_maintenance_nodes [0.114169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5856076a-aa92-45c5-90c6-ca7a47a18928 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": "724abf54-852e-4d9e-a9af-c4c8a9107d80", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/724abf54-852e-4d9e-a9af-c4c8a9107d80", "rel": "self"}, {"href": "http://localhost/nodes/724abf54-852e-4d9e-a9af-c4c8a9107d80", "rel": "bookmark"}]}, {"uuid": "07c4bbf3-e591-458e-950e-8de498f28d90", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/07c4bbf3-e591-458e-950e-8de498f28d90", "rel": "self"}, {"href": "http://localhost/nodes/07c4bbf3-e591-458e-950e-8de498f28d90", "rel": "bookmark"}]}]} GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d3a8299-ecf5-4906-a05d-a806022560e7 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": "dc1e00f6-c93c-4291-b805-b302c2b27222", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dc1e00f6-c93c-4291-b805-b302c2b27222", "rel": "self"}, {"href": "http://localhost/nodes/dc1e00f6-c93c-4291-b805-b302c2b27222", "rel": "bookmark"}]}, {"uuid": "2228f2cf-3a55-48a9-9997-575b9713268d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2228f2cf-3a55-48a9-9997-575b9713268d", "rel": "self"}, {"href": "http://localhost/nodes/2228f2cf-3a55-48a9-9997-575b9713268d", "rel": "bookmark"}]}, {"uuid": "a1860814-afd4-4ddf-9af3-34f4fa82f727", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a1860814-afd4-4ddf-9af3-34f4fa82f727", "rel": "self"}, {"href": "http://localhost/nodes/a1860814-afd4-4ddf-9af3-34f4fa82f727", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver [0.052293s] ... 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-9fda8b3c-7cdf-4531-85a9-69993def4d35 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_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.089560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d08ac611-9d0e-4473-892d-50c1236c76a4 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/518f2cae-f436-4a7a-88a8-9d63f0e8e50a", "rel": "self"}, {"href": "http://localhost/portgroups/518f2cae-f436-4a7a-88a8-9d63f0e8e50a", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/e3a18e8c-2260-46af-b16b-07217034d630", "rel": "self"}, {"href": "http://localhost/portgroups/e3a18e8c-2260-46af-b16b-07217034d630", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=e3a18e8c-2260-46af-b16b-07217034d630"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.055268s] ... 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-71febf3e-f255-467c-a90e-e9a89b8ec32e 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_observer [0.100013s] ... 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-bf26767b-8955-4738-9984-6726cdc6aa4a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.087789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39db7e71-6409-4161-be18-3b0e5ad0e8c5 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": "fe65dfac-f731-491c-91e9-8c89f373bc5c", "instance_uuid": "757a321c-5569-48d2-9f23-158d7e3c5e39", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fe65dfac-f731-491c-91e9-8c89f373bc5c", "rel": "self"}, {"href": "http://localhost/nodes/fe65dfac-f731-491c-91e9-8c89f373bc5c", "rel": "bookmark"}]}, {"uuid": "ee2886ae-a9aa-497b-ac2c-9eef728fba8b", "instance_uuid": "8e6edab3-028b-412c-855c-aaf38796618f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ee2886ae-a9aa-497b-ac2c-9eef728fba8b", "rel": "self"}, {"href": "http://localhost/nodes/ee2886ae-a9aa-497b-ac2c-9eef728fba8b", "rel": "bookmark"}]}, {"uuid": "ae7fc69e-3790-46a7-8d96-d1deaf2d1880", "instance_uuid": "a4998872-8b87-4016-afda-ad1adb5847a1", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ae7fc69e-3790-46a7-8d96-d1deaf2d1880", "rel": "self"}, {"href": "http://localhost/nodes/ae7fc69e-3790-46a7-8d96-d1deaf2d1880", "rel": "bookmark"}]}, {"uuid": "f77f9f99-e8f8-4f8d-9cf2-e7e98ff90c43", "instance_uuid": "cb65c725-eb18-4ac3-95b4-112fe2313276", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f77f9f99-e8f8-4f8d-9cf2-e7e98ff90c43", "rel": "self"}, {"href": "http://localhost/nodes/f77f9f99-e8f8-4f8d-9cf2-e7e98ff90c43", "rel": "bookmark"}]}]} GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e58b44bc-30b3-4212-a971-893fc201a251 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": "ac4a1b40-6fb8-4ca8-9f5d-e2cbe009228e", "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-0576a1e3-1adb-449f-a336-a82814be4402 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": "ac4a1b40-6fb8-4ca8-9f5d-e2cbe009228e", "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.047902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4b6d702b-650e-4110-87b5-ec504ae4e900 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_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.042076s] ... 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-51b30f64-4455-43a9-b3ee-ed2062d816ff X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.027943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8bb80044-9da7-4fc3-8d00-60c781717d65 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}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.053843s] ... 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-cc7ad461-f617-4942-9b09-29eb8a44569e X-Openstack-Ironic-Api-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.TestPut.test_secure_boot_on_invalid_request_two [0.038008s] ... 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-9971c872-039d-4c73-b90c-43a53bad0547 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_post_admin [0.093978s] ... 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-8ffb984f-4208-4664-9398-031d58e0d858 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_many [0.061008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e39a868-7421-4151-9c09-a2581e86f4b3 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": "060045e0-caba-4910-af5a-ce6f5cc5da87", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/060045e0-caba-4910-af5a-ce6f5cc5da87", "rel": "self"}, {"href": "http://localhost/nodes/060045e0-caba-4910-af5a-ce6f5cc5da87", "rel": "bookmark"}]}, {"uuid": "13516ba4-fbf8-40fe-be86-75f8452900cc", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/13516ba4-fbf8-40fe-be86-75f8452900cc", "rel": "self"}, {"href": "http://localhost/nodes/13516ba4-fbf8-40fe-be86-75f8452900cc", "rel": "bookmark"}]}, {"uuid": "645b33ef-3215-4a05-bd7e-74a73fe80426", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/645b33ef-3215-4a05-bd7e-74a73fe80426", "rel": "self"}, {"href": "http://localhost/nodes/645b33ef-3215-4a05-bd7e-74a73fe80426", "rel": "bookmark"}]}, {"uuid": "23a844b4-d965-4184-b574-2db93966877d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/23a844b4-d965-4184-b574-2db93966877d", "rel": "self"}, {"href": "http://localhost/nodes/23a844b4-d965-4184-b574-2db93966877d", "rel": "bookmark"}]}, {"uuid": "9bfcc62a-bf5b-421e-9008-63c931be132e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9bfcc62a-bf5b-421e-9008-63c931be132e", "rel": "self"}, {"href": "http://localhost/nodes/9bfcc62a-bf5b-421e-9008-63c931be132e", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.046265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d79096a2-808c-42ec-a267-16d960016723 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": "2024-09-05T08:47:53.253869+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.053156s] ... 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-4a973406-16f8-4a42-8831-5443952c975e 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden [0.036502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1f37c95b-9df8-423a-a1d2-aa768b8c174d 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_portgroup.TestListPortgroups.test_get_one_custom_fields [0.049885s] ... 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-9bd1ae8d-95df-4c1a-afae-40ffe9aa9a59 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.050403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8af4add-a55f-439a-805d-15b61109ab38 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": "ea15625c-f16c-4c16-b8c5-abfca0f18376", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/ea15625c-f16c-4c16-b8c5-abfca0f18376", "rel": "self"}, {"href": "http://localhost/nodes/ea15625c-f16c-4c16-b8c5-abfca0f18376", "rel": "bookmark"}]}, {"uuid": "0a92c211-3d04-4efc-adda-d8c7a7bd3db8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/0a92c211-3d04-4efc-adda-d8c7a7bd3db8", "rel": "self"}, {"href": "http://localhost/nodes/0a92c211-3d04-4efc-adda-d8c7a7bd3db8", "rel": "bookmark"}]}, {"uuid": "5bd48cfc-a108-4ff7-a4d6-cbc1cbafe7e2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/5bd48cfc-a108-4ff7-a4d6-cbc1cbafe7e2", "rel": "self"}, {"href": "http://localhost/nodes/5bd48cfc-a108-4ff7-a4d6-cbc1cbafe7e2", "rel": "bookmark"}]}, {"uuid": "2cf633da-6afa-4ffe-8b26-695a4ecb9ca1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/2cf633da-6afa-4ffe-8b26-695a4ecb9ca1", "rel": "self"}, {"href": "http://localhost/nodes/2cf633da-6afa-4ffe-8b26-695a4ecb9ca1", "rel": "bookmark"}]}, {"uuid": "833c9235-f7b5-49a5-bcb7-95901a77b484", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/833c9235-f7b5-49a5-bcb7-95901a77b484", "rel": "self"}, {"href": "http://localhost/nodes/833c9235-f7b5-49a5-bcb7-95901a77b484", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.048917s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.090343s] ... 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-e2b1a411-7ddb-471c-8547-94b9e80d9929 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.035897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7422ec0f-fa90-4100-99b7-96d166173a11 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.TestListNodes.test_many_list_all_forbidden [0.065182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00e12506-b5c0-41fc-ae56-6cdd705f5d57 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": "8a404d51-811f-44c8-95f5-4f7e935dc4d1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/8a404d51-811f-44c8-95f5-4f7e935dc4d1", "rel": "self"}, {"href": "http://localhost/nodes/8a404d51-811f-44c8-95f5-4f7e935dc4d1", "rel": "bookmark"}]}, {"uuid": "6781810f-71c8-416f-a19a-1201dde2ef91", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6781810f-71c8-416f-a19a-1201dde2ef91", "rel": "self"}, {"href": "http://localhost/nodes/6781810f-71c8-416f-a19a-1201dde2ef91", "rel": "bookmark"}]}, {"uuid": "0cfd79ab-822a-4da5-afd2-3177ee34cf27", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0cfd79ab-822a-4da5-afd2-3177ee34cf27", "rel": "self"}, {"href": "http://localhost/nodes/0cfd79ab-822a-4da5-afd2-3177ee34cf27", "rel": "bookmark"}]}, {"uuid": "35f5758f-2755-40c0-aad9-d1214573caad", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/35f5758f-2755-40c0-aad9-d1214573caad", "rel": "self"}, {"href": "http://localhost/nodes/35f5758f-2755-40c0-aad9-d1214573caad", "rel": "bookmark"}]}, {"uuid": "0634dd23-1fb8-44f4-bf8e-88a95eb5bca5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0634dd23-1fb8-44f4-bf8e-88a95eb5bca5", "rel": "self"}, {"href": "http://localhost/nodes/0634dd23-1fb8-44f4-bf8e-88a95eb5bca5", "rel": "bookmark"}]}, {"uuid": "38e99150-8f6e-4f9f-a985-492838f600f3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38e99150-8f6e-4f9f-a985-492838f600f3", "rel": "self"}, {"href": "http://localhost/nodes/38e99150-8f6e-4f9f-a985-492838f600f3", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.069671s] ... 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-c69dafa5-a4ee-4354-bf2c-8201213e0fc4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.043613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d70c0491-817c-41ea-84f0-e0ad08f18282 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.TestPut.test_service [0.078256s] ... 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-c60f18ed-2011-4ab6-b29b-c81e9369746e 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) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.074324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ade01197-ff28-4519-bedd-c0f4eccc443c 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": "2024-09-05T08:47:53.536953+00:00", "updated_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-256505aa-6f14-430c-a43a-7e60e3eae6d2 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": "2024-09-05T08:47:53.536953+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.055277s] ... 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-a42afaca-e3a2-41ab-97d2-70fdbc911c35 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member [0.361944s] ... 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-169003c4-1ccd-45eb-a542-1bc339c3357a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_next_link_with_association [0.058574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a570f2fc-5328-46a2-b2c5-d6a2daaf8dfb 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": "479f402f-6d96-4d3d-9e6f-e0ea8c2f9973", "instance_uuid": "ab74cc9a-79e8-491b-9392-53725269a868", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/479f402f-6d96-4d3d-9e6f-e0ea8c2f9973", "rel": "self"}, {"href": "http://localhost/nodes/479f402f-6d96-4d3d-9e6f-e0ea8c2f9973", "rel": "bookmark"}]}, {"uuid": "5c125bf4-6cf2-47bd-a1e9-d628ae146330", "instance_uuid": "499a2280-40b5-46c9-8656-5e3f40133137", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5c125bf4-6cf2-47bd-a1e9-d628ae146330", "rel": "self"}, {"href": "http://localhost/nodes/5c125bf4-6cf2-47bd-a1e9-d628ae146330", "rel": "bookmark"}]}, {"uuid": "a9e02866-410f-42b1-b3cc-edb4cdd4b5f1", "instance_uuid": "6819c90e-3554-42eb-818f-69ee91cf7493", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a9e02866-410f-42b1-b3cc-edb4cdd4b5f1", "rel": "self"}, {"href": "http://localhost/nodes/a9e02866-410f-42b1-b3cc-edb4cdd4b5f1", "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=a9e02866-410f-42b1-b3cc-edb4cdd4b5f1"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.247909s] ... 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-fc7d6fed-56c5-4607-b1d7-15be04493ec9 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.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.042767s] ... 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-82b23aad-25b2-4941-b5f1-83dc2bf8da53 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": "2024-09-05T08:47:53.647177+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.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_observer [0.072553s] ... 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-0e8f5635-fd79-49b4-92cc-b1e03345b680 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.098233s] ... 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-afac5206-2fa6-4074-b75c-c81ccd45e353 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.TestListNodes.test_next_link_with_association_with_detail [0.070089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-44d85c70-86f8-40aa-a41b-9f415487bb4e 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": "65d77861-1c96-4555-9f82-582f5a9a450c", "created_at": "2024-09-05T08:47:53.664881+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "3d44080c-f3ce-465b-bcdc-40af3ad72366", "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/65d77861-1c96-4555-9f82-582f5a9a450c", "rel": "self"}, {"href": "http://localhost/nodes/65d77861-1c96-4555-9f82-582f5a9a450c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/65d77861-1c96-4555-9f82-582f5a9a450c/ports", "rel": "self"}, {"href": "http://localhost/nodes/65d77861-1c96-4555-9f82-582f5a9a450c/ports", "rel": "bookmark"}]}, {"uuid": "5b0d32f7-14d2-494c-a5c4-24bfaba5691e", "created_at": "2024-09-05T08:47:53.666742+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "c3b755e7-f7df-4034-a138-429c6abed4cd", "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/5b0d32f7-14d2-494c-a5c4-24bfaba5691e", "rel": "self"}, {"href": "http://localhost/nodes/5b0d32f7-14d2-494c-a5c4-24bfaba5691e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5b0d32f7-14d2-494c-a5c4-24bfaba5691e/ports", "rel": "self"}, {"href": "http://localhost/nodes/5b0d32f7-14d2-494c-a5c4-24bfaba5691e/ports", "rel": "bookmark"}]}, {"uuid": "d6129dd4-349d-4d7c-ad70-e76ef11c344e", "created_at": "2024-09-05T08:47:53.671047+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "7a4c68cc-eea3-4ea5-a572-48fe9684ea18", "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/d6129dd4-349d-4d7c-ad70-e76ef11c344e", "rel": "self"}, {"href": "http://localhost/nodes/d6129dd4-349d-4d7c-ad70-e76ef11c344e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d6129dd4-349d-4d7c-ad70-e76ef11c344e/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6129dd4-349d-4d7c-ad70-e76ef11c344e/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=d6129dd4-349d-4d7c-ad70-e76ef11c344e"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.053775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fefeef0f-daef-4cf0-b926-6f5e59f8f428 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": "2024-09-05T08:47:53.698124+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.json", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.068190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab8bd658-a5a4-42b5-976a-16a5a8c8268b 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": "2024-09-05T08:47:53.729025+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_portgroup.TestListPortgroups.test_get_one_with_suffix [0.047030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-339321d9-c004-4295-b187-b0ac8e20b66b 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": "2024-09-05T08:47:53.744156+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_put_admin [0.090148s] ... 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-23c73cb3-1cb7-43d9-a3ac-742d3d157b29 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.061067s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2cb44fcf-57db-4f1a-921f-424139acd6ba 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": "2024-09-05T08:47:53.798096+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-6461e263-b981-4ffe-87e4-4d1e6eda2176 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": "2024-09-05T08:47:53.798096+00:00", "updated_at": null, "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_portgroup.TestListPortgroups.test_links [0.066093s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-388063f5-f99d-4d79-810f-7bfffb5c3951 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ef3cad09-fa67-4ea4-b2c2-0141709216e1", "created_at": "2024-09-05T08:47:53.791950+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/ef3cad09-fa67-4ea4-b2c2-0141709216e1", "rel": "self"}, {"href": "http://localhost/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1/ports", "rel": "bookmark"}]} GET /v1/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ec90804b-f7c3-41e9-8bc5-b371210189e9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ef3cad09-fa67-4ea4-b2c2-0141709216e1", "created_at": "2024-09-05T08:47:53.791950+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/ef3cad09-fa67-4ea4-b2c2-0141709216e1", "rel": "self"}, {"href": "http://localhost/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1/ports", "rel": "bookmark"}]} GET /portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16232156-7a1d-4e6c-8f6c-dc31a0464ad0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ef3cad09-fa67-4ea4-b2c2-0141709216e1", "created_at": "2024-09-05T08:47:53.791950+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/ef3cad09-fa67-4ea4-b2c2-0141709216e1", "rel": "self"}, {"href": "http://localhost/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ef3cad09-fa67-4ea4-b2c2-0141709216e1/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_member [0.080380s] ... 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-eaa145ee-78db-4cdd-add0-37c112a4eb3f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_node_automated_clean_null_field [0.053057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7762124-351f-423e-962e-02c554a258df 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": "2024-09-05T08:47:53.850646+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.064452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54c1767a-f08c-4ec1-831d-dfc490895520 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": "096d58e5-ca77-4c41-809f-e0d2f943910a", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/096d58e5-ca77-4c41-809f-e0d2f943910a", "rel": "self"}, {"href": "http://localhost/portgroups/096d58e5-ca77-4c41-809f-e0d2f943910a", "rel": "bookmark"}]}, {"uuid": "94b26076-ad1e-4fe3-a79c-61973f2b11e9", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/94b26076-ad1e-4fe3-a79c-61973f2b11e9", "rel": "self"}, {"href": "http://localhost/portgroups/94b26076-ad1e-4fe3-a79c-61973f2b11e9", "rel": "bookmark"}]}, {"uuid": "041e9bc7-3c87-40be-92b8-02134f6d182f", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/041e9bc7-3c87-40be-92b8-02134f6d182f", "rel": "self"}, {"href": "http://localhost/portgroups/041e9bc7-3c87-40be-92b8-02134f6d182f", "rel": "bookmark"}]}, {"uuid": "7bd6ca9a-e917-46c3-ac25-2cd2d1f967e0", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/7bd6ca9a-e917-46c3-ac25-2cd2d1f967e0", "rel": "self"}, {"href": "http://localhost/portgroups/7bd6ca9a-e917-46c3-ac25-2cd2d1f967e0", "rel": "bookmark"}]}, {"uuid": "c717e9d4-d83f-4237-8dc6-c7640f1b848c", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/c717e9d4-d83f-4237-8dc6-c7640f1b848c", "rel": "self"}, {"href": "http://localhost/portgroups/c717e9d4-d83f-4237-8dc6-c7640f1b848c", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.041722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02d297f3-89cc-4142-b4b9-2dec286fc364 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": "2024-09-05T08:47:53.901516+00:00", "updated_at": null, "automated_clean": true, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer [0.090143s] ... 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-91b1b5f9-3648-4855-8b44-ba36e41e1226 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.051944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b780471a-8cc4-46cf-bef4-1ea128f34037 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_node.TestPut.test_set_boot_device_by_name [0.295221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content Openstack-Request-Id: req-37472fc1-67a5-449e-a3c2-70217467f85e 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.TestListNodes.test_node_bios_hidden_in_lower_version [0.058218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc3efabe-0634-46c7-a775-e9f1a2400c4b 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": "2024-09-05T08:47:53.946834+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-a37fd1ca-5fd7-407c-9544-36a1f52f40ed 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": "2024-09-05T08:47:53.946834+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.056689s] ... 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-c8e0c0cf-f134-4bda-88d1-13169bb555fe 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": "abe90447-352d-4943-a91e-05f0b8ad2c1c", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/abe90447-352d-4943-a91e-05f0b8ad2c1c", "rel": "self"}, {"href": "http://localhost/portgroups/abe90447-352d-4943-a91e-05f0b8ad2c1c", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.037867s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-78801bcb-f0ee-4887-8717-54ba4be1926d X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin [0.110516s] ... 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-15463c08-c7da-4ff3-97ae-eddaee75a665 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.077082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d5ada24-564e-4613-b9b1-076351ffe565 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a", "created_at": "2024-09-05T08:47:54.022628+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/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a", "rel": "self"}, {"href": "http://localhost/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/ports", "rel": "self"}, {"href": "http://localhost/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/states", "rel": "self"}, {"href": "http://localhost/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/volume", "rel": "self"}, {"href": "http://localhost/nodes/66b8ae4e-fddc-4b2c-8aa9-83524f80dc7a/volume", "rel": "bookmark"}]} GET /v1/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17467b9a-2589-4c02-ad20-fbdd46df6db8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9", "created_at": "2024-09-05T08:47:54.040081+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/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9", "rel": "self"}, {"href": "http://localhost/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/states", "rel": "self"}, {"href": "http://localhost/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/volume", "rel": "self"}, {"href": "http://localhost/nodes/c9e9c7cb-cf80-487b-8cbc-c9b96bf196c9/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.082960s] ... 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-65f8281a-36c9-4a3d-899c-5d42d7e702f7 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.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.045923s] ... 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-f83915c3-b8e9-4e4e-95c3-da022cdeeb37 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"portgroups": []} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.044537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c3faba7b-aab8-48ec-85c9-690f8bcb5d59 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member [0.092161s] ... 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-1f648df6-1449-4f2f-890e-864717dd2477 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestPut.test_set_boot_device_persistent [0.093831s] ... 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-baa24770-ed65-49e2-a5b6-f75563cdfa74 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.TestPut.test_set_boot_device_persistent_invalid_value [0.065444s] ... 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-2e669865-20c9-4455-96d0-165bf4a1cb98 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer [0.085072s] ... 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-233925f8-2e19-4b7d-8bdb-90d13521cbf2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.056025s] ... 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-9000660f-c57f-4367-aa2f-9001879ddafa 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_portgroup.TestListPortgroups.test_ports_subresource [0.160211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/d9cb2098-3e50-4faf-80cb-7f7b09898e56/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1bd26a56-9285-481c-bf9d-e8940cc041df 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": "737b0e8a-c4a6-4514-adf9-1d34535e586d", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/737b0e8a-c4a6-4514-adf9-1d34535e586d", "rel": "self"}, {"href": "http://localhost/ports/737b0e8a-c4a6-4514-adf9-1d34535e586d", "rel": "bookmark"}]}, {"uuid": "e1ffc3ec-6c8b-4af0-b2bc-affba25787f7", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e1ffc3ec-6c8b-4af0-b2bc-affba25787f7", "rel": "self"}, {"href": "http://localhost/ports/e1ffc3ec-6c8b-4af0-b2bc-affba25787f7", "rel": "bookmark"}]}]} GET /v1/portgroups/d9cb2098-3e50-4faf-80cb-7f7b09898e56/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55756d16-20d1-4e09-a7ac-93185a1108a9 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": "737b0e8a-c4a6-4514-adf9-1d34535e586d", "created_at": "2024-09-05T08:47:54.182832+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/737b0e8a-c4a6-4514-adf9-1d34535e586d", "rel": "self"}, {"href": "http://localhost/ports/737b0e8a-c4a6-4514-adf9-1d34535e586d", "rel": "bookmark"}], "portgroup_uuid": "d9cb2098-3e50-4faf-80cb-7f7b09898e56"}, {"uuid": "e1ffc3ec-6c8b-4af0-b2bc-affba25787f7", "created_at": "2024-09-05T08:47:54.186691+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/e1ffc3ec-6c8b-4af0-b2bc-affba25787f7", "rel": "self"}, {"href": "http://localhost/ports/e1ffc3ec-6c8b-4af0-b2bc-affba25787f7", "rel": "bookmark"}], "portgroup_uuid": "d9cb2098-3e50-4faf-80cb-7f7b09898e56"}]} GET /v1/portgroups/d9cb2098-3e50-4faf-80cb-7f7b09898e56/ports?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa260ef5-e18e-4844-bca6-94704ad316f0 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": "737b0e8a-c4a6-4514-adf9-1d34535e586d", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/737b0e8a-c4a6-4514-adf9-1d34535e586d", "rel": "self"}, {"href": "http://localhost/ports/737b0e8a-c4a6-4514-adf9-1d34535e586d", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=737b0e8a-c4a6-4514-adf9-1d34535e586d"} GET /v1/portgroups/d9cb2098-3e50-4faf-80cb-7f7b09898e56/ports/b50f4012-7041-4020-ada6-1757972d5913 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET /v1/portgroups/d9cb2098-3e50-4faf-80cb-7f7b09898e56/ports/7b330031-1342-4410-87cf-c61d02c8b7d5 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-25cc23f0-56c7-4bd7-9b4d-0b7a7951171a X-Openstack-Ironic-Api-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.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.269998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-441b5b81-4163-417f-bfc8-e0d7466478ee 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": "2024-09-05T08:47:54.302775+00:00", "updated_at": null, "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-4902a9db-dca6-41df-9e3f-458a5fa64635 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": "2024-09-05T08:47:54.302775+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin [0.096693s] ... 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-9c1c6b29-5230-45f2-94ae-dbcb2a05ec2d 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"]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.049363s] ... 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-fd5dc46d-ca4c-403a-9824-b3da89220237 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_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.052006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/ee2d2553-5ed2-4111-93f9-a444cd399706/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_node.TestListNodes.test_node_boot_mode_null_field [0.034603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b267ad79-550a-4bd3-af9f-df0dfb71e4b0 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": "2024-09-05T08:47:54.346395+00:00", "updated_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.TestPut.test_set_console_mode_bad_request [0.040792s] ... 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-92da4e24-cfb8-40ab-a71e-8de0c8f5de9e 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.036640s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=68f9e560-8e43-4a9c-8058-d03a39de3bae WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-91f1a94d-3d01-46b4-8c8f-cdc3af815070 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": "ae36f588-c20a-4629-9078-f3d3a83a14ac", "instance_uuid": "68f9e560-8e43-4a9c-8058-d03a39de3bae", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ae36f588-c20a-4629-9078-f3d3a83a14ac", "rel": "self"}, {"href": "http://localhost/nodes/ae36f588-c20a-4629-9078-f3d3a83a14ac", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.052521s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.050231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-86098856-eac8-4474-8861-19d760d678d7 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.071966s] ... 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-26dbb14c-4b70-416e-9d90-29c41dcd3e7b 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_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.058864s] ... 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-da51b468-aa19-48ff-94d2-de2aaf1a9cc9 X-Openstack-Ironic-Api-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_node.TestPut.test_set_console_mode_console_not_supported [0.044974s] ... 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-2e21e911-0a41-4539-87fc-2422088b06e0 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.067978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=2922db56-6d58-40a4-89dc-c2bfa2c52260 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3616d96d-cb68-46d9-8943-7941446c4946 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_portgroup.TestListPortgroups.test_sort_key [0.063315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb31662c-39c0-4e5d-b99a-60eb23e6bf80 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": "aa1bbbf9-9dd5-4d8f-803c-f67e99e8bd35", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/aa1bbbf9-9dd5-4d8f-803c-f67e99e8bd35", "rel": "self"}, {"href": "http://localhost/portgroups/aa1bbbf9-9dd5-4d8f-803c-f67e99e8bd35", "rel": "bookmark"}]}, {"uuid": "b5a5fd19-b146-49cb-9638-84958ac6b5d3", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/b5a5fd19-b146-49cb-9638-84958ac6b5d3", "rel": "self"}, {"href": "http://localhost/portgroups/b5a5fd19-b146-49cb-9638-84958ac6b5d3", "rel": "bookmark"}]}, {"uuid": "c047e7ea-9481-4e59-9d6c-6af01a2db357", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/c047e7ea-9481-4e59-9d6c-6af01a2db357", "rel": "self"}, {"href": "http://localhost/portgroups/c047e7ea-9481-4e59-9d6c-6af01a2db357", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member [0.200811s] ... 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-47a70374-845f-436e-a8f0-e981cd8d53f9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestPut.test_set_console_mode_disabled [0.055631s] ... 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-b6e1bab2-f289-484a-8364-7b35d9ad9512 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.TestListPortgroups.test_sort_key_allowed [0.067599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ce420c1-21c7-4f70-a90c-20ac9158bd62 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": "0d9b012f-f296-4626-89d0-78c93269d05c", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/0d9b012f-f296-4626-89d0-78c93269d05c", "rel": "self"}, {"href": "http://localhost/portgroups/0d9b012f-f296-4626-89d0-78c93269d05c", "rel": "bookmark"}]}, {"uuid": "104aad8c-cc59-4cf6-8156-2d7aa4bb4c24", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/104aad8c-cc59-4cf6-8156-2d7aa4bb4c24", "rel": "self"}, {"href": "http://localhost/portgroups/104aad8c-cc59-4cf6-8156-2d7aa4bb4c24", "rel": "bookmark"}]}, {"uuid": "8937fe4a-1034-4f10-a4df-7492ba776bb6", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/8937fe4a-1034-4f10-a4df-7492ba776bb6", "rel": "self"}, {"href": "http://localhost/portgroups/8937fe4a-1034-4f10-a4df-7492ba776bb6", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.110409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76eded41-99c5-4cbd-97c0-0e7e1145d344 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": "2024-09-05T08:47:54.588629+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-90490f34-419c-4e64-bca1-e62194ac5f5d 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": "2024-09-05T08:47:54.588629+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_portgroup.TestListPortgroups.test_sort_key_invalid [0.051018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5f5409be-5c53-458e-878f-97f0dba43e9e X-Openstack-Ironic-Api-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-15d016f5-0bf2-41bd-8f7a-0547175a01af X-Openstack-Ironic-Api-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-7ff3ef0d-2a53-43ce-a4ce-3c73ba5aa792 X-Openstack-Ironic-Api-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-eeee61f5-5857-45e9-bc1c-ee56e04e2186 X-Openstack-Ironic-Api-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_node.TestPut.test_set_console_mode_enabled [0.107706s] ... 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-320156eb-1535-47be-9ca4-28018babcf6a 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.TestListPortgroups.test_sort_key_not_allowed [0.035512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b78df021-cd40-42c4-9d58-099e076147a9 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.controllers.v1.test_shard.TestListShards.test_empty [0.035572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1ea7b84-3ec4-4c41-91f3-995f27af3145 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"shards": []} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_observer [0.218877s] ... 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-db28faa9-3756-437b-89d0-960189c77042 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"]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.125946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae75afaa-fd05-4354-b1ce-546daafb8669 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": "2024-09-05T08:47:54.695213+00:00", "updated_at": null, "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-7886149b-5e47-47ea-ab16-b5b4545a7f41 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": "2024-09-05T08:47:54.695213+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_inter face": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one [0.042920s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1f456607-fc55-477d-accd-c8dde8d14b5c X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.106083s] ... 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-e9dff5fe-aa6a-4aba-b466-26e998913251 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_shard.TestListShards.test_fail_post [0.035596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/shards WITH {} GOT Response: 405 Method Not Allowed Allow: GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.029916s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_put_admin [0.097172s] ... 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-8b54aea7-1769-426d-80e7-b3cc30a0d47d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.107159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61585c5b-bf3a-4c7a-b8df-4f1f01ff8e2f 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": "2024-09-05T08:47:54.816361+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-75659840-c22e-49f4-b138-e1fa8db6af6a 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": "2024-09-05T08:47:54.816361+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value [0.087715s] ... 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-63c1a6ca-d4ea-43ac-a740-cdd238e2ebcb 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_shard.TestListShards.test_fail_wrong_version [0.047566s] ... 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\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member [0.090481s] ... 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-f0d0cf1c-2f8c-4b97-a41d-c75758b47261 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_node_description_null_field [0.089885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b790aacb-bcc1-46c9-a0c2-ba0be80aa7ff 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": "2024-09-05T08:47:54.921377+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.091493s] ... 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-ee32684f-e374-4240-9853-ef022857c76d 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_shard.TestListShards.test_multiple_shards [0.111902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5350b06d-b9a3-4165-8ad5-459d4f5a9870 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}]} {0} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.050239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76d0ad9a-a6f9-44eb-bf94-eddc5607b526 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_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.105499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-093a23ce-1c4d-426e-9e23-654b19fb7729 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": "2024-09-05T08:47:55.007795+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-ef9a462f-47a5-453d-b29f-8c78eb18d77c 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": "2024-09-05T08:47:55.007795+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "lin ks": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.087133s] ... 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-58ed1205-9c56-4894-b007-1b7d04a0d1fd 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_shard.TestListShards.test_one_shard [0.041083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f1740f0-06b4-4f33-ba21-5c0d14c588b3 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer [0.148019s] ... 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-5f70a835-c6ce-49ec-87a5-013904cb9768 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token [0.022577s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.019446s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps [0.019213s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.076059s] ... 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-eee256f4-72ea-4b6d-8313-4497e2953226 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.020061s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.110476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fa59a4b-365d-407b-98a8-5323643c11b0 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": "2024-09-05T08:47:55.117186+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-46632772-a20a-4567-a3d5-67067d5769e4 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": "2024-09-05T08:47:55.117186+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspect wait", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2 e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_delete_admin [0.087865s] ... 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-d5a8f6c8-5581-4713-b55e-4b05d64313bd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.035018s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.025194s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.084453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-d996ee9e-c42c-48cd-9690-b02c505675a1 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.TestCheckAllowFields.test_allow_inspect_abort [0.020389s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_member [0.084571s] ... 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-42759cf7-863e-4b2a-937f-7467541df9a4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.093419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c89c672-2d21-4e5b-bc54-c370efad3371 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": "2024-09-05T08:47:55.227494+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.023595s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.021727s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.019668s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.091545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-287a935a-c832-4a4b-ba8c-86009c5ab2c5 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.TestCheckAllowFields.test_allow_port_internal_info [0.027697s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.020776s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version [0.106178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d691c67b-e2e7-4a5a-bd20-8b0de8d62c51 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": "2024-09-05T08:47:55.322441+00:00", "updated_at": null, "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-42f5b799-3ca1-4fe8-bbc2-9be66974d553 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": "2024-09-05T08:47:55.322441+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x 86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer [0.116435s] ... 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-689f1fc5-6572-45b4-bce1-b609b8df5625 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.022435s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.019625s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.019909s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.081966s] ... 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-7ab4b693-5b11-48bd-8433-2afcabc5e7e9 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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.020867s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin [0.077008s] ... 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-2326f135-0ee7-4773-921a-7e4b7b3ec7d5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.087234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e69d406a-c07b-42d0-b8c7-576c48dd664b 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": "2024-09-05T08:47:55.429810+00:00", "updated_at": null, "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_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.029683s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.030330s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.099378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-aead260d-dcd2-4b48-a815-b8da732223b9 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.TestListNodes.test_node_lessee_present [0.068393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-684d3273-d2ee-4a36-8f62-51ac6f35c375 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": "2024-09-05T08:47:55.515079+00:00", "updated_at": null, "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_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.029867s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_member [0.089816s] ... 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-310582ab-fa03-4426-904f-88ff1e928b64 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.020518s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data [0.042603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f027dde3-17c0-4efe-ac8f-b898e52984bf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "339ee406-ca92-4739-92b6-9186f3c8d0e9", "created_at": "2024-09-05T08:47:55.566263+00:00", "updated_at": null, "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/339ee406-ca92-4739-92b6-9186f3c8d0e9", "rel": "self"}, {"href": "http://localhost/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/ports", "rel": "self"}, {"href": "http://localhost/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/states", "rel": "self"}, {"href ": "http://localhost/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/volume", "rel": "self"}, {"href": "http://localhost/nodes/339ee406-ca92-4739-92b6-9186f3c8d0e9/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.021446s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.069547s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-845a7a40-d9e3-48ca-a32a-3533e13ad3e1 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.TestCheckAllowFields.test_allow_traits [0.037508s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer [0.090064s] ... 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-2834689d-ea98-4de0-af3e-772fd782044e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.028367s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.064161s] ... 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-b2bf689e-f0e5-49c4-b80a-1bb2f3d38457 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version [0.089874s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ab21922-01fe-432b-bddf-1dc36b593d23 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": "2024-09-05T08:47:55.615184+00:00", "updated_at": null, "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-75a9a6ce-2afe-4908-994a-9df7bcfac917 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": "2024-09-05T08:47:55.615184+00:00", "updated_at": null, "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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.039259s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.049336s] ... 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-1e9ee28d-9e0b-421b-907c-d089aea4873a 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.049212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90eaddc4-1d92-4358-a01c-5e2a5ee09559 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": "2024-09-05T08:47:55.699332+00:00", "updated_at": null, "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-6fd0ba56-ce7b-47e6-a758-e4a7ebdb6029 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": "2024-09-05T08:47:55.699332+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_upd ated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.034176s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.021277s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin [0.113533s] ... 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-70db5450-9f7d-44a6-a6f7-84f5cca07ea6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.042885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe19eac4-d340-4cd3-8542-c96731ec0863 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": "2024-09-05T08:47:55.748008+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.029892s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.025594s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.048307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8005c784-b1a1-4f52-95b7-4d2e21bcd131 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": "2024-09-05T08:47:55.801107+00:00", "updated_at": null, "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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.030607s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_member [0.115997s] ... 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-c438ebb1-3feb-4fea-9dc0-484751dc8893 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_node_protected [0.050459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1ea780a-c7a2-4f4f-857e-5c4d543b85ac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "c97917d5-c6c6-471b-8108-3697b9f3b129", "created_at": "2024-09-05T08:47:55.844757+00:00", "updated_at": null, "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/c97917d5-c6c6-471b-8108-3697b9f3b129", "rel": "self"}, {"href": "http://localhost/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/ports", "rel": "self"}, {"href": "http://localhost/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/states", "rel": "self"}, {"href": "http://localhost/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/volume", "rel": "self"}, {"href": "http://localhost/nodes/c97917d5-c6c6-471b-8108-3697b9f3b129/volume", "rel": "bookmark"}]} GET /v1/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-939b5d2d-1796-4ed5-a9bd-c032932b7885 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "64b92af0-1ad0-4c5e-96ca-5fcfd0383869", "created_at": "2024-09-05T08:47:55.855737+00:00", "updated_at": null, "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/64b92af0-1ad0-4c5e-96ca-5fcfd0383869", "rel": "self"}, {"href": "http://localhost/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/ports", "rel": "self"}, {"href": "http://localhost/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/states", "rel": "self"}, {"href": "http://localhost/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/volume", "rel": "self"}, {"href": "http://localhost/nodes/64b92af0-1ad0-4c5e-96ca-5fcfd0383869/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.072566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0858c98-1e36-4e66-a9a2-e0e34284e2ef 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": "2024-09-05T08:47:55.931666+00:00", "updated_at": null, "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-c739f09e-a65c-4b6e-a338-e792f1debefc 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": "2024-09-05T08:47:55.931666+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_observer [0.086132s] ... 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-0c17e1c0-7b9f-480e-bc89-d8f5e49984fd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.283014s] ... 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-fe1e0ebc-e51d-47f7-a409-cfc8d0886024 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.053841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f94e67bc-4e8c-41b0-bd31-6064497eb43a 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": "2024-09-05T08:47:55.980123+00:00", "updated_at": null, "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-581b5eb1-8f2d-41e9-bd7b-93a58822529a 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": "2024-09-05T08:47:55.980123+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_vifs_get_admin [0.087425s] ... 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-98e2abd7-a208-4a88-83c1-60b86b5c2948 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.042959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e90f3d17-c0dc-4160-b2d4-0bf980bed1c8 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": "2024-09-05T08:47:56.034108+00:00", "updated_at": null, "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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.060568s] ... 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-b1b6708d-2e19-489f-beee-920afdc4f8c7 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired [0.057648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-194777ec-7021-475e-a230-2b85251efa6c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "b331a5a4-8d79-4014-9381-173a9feddf6e", "created_at": "2024-09-05T08:47:56.088449+00:00", "updated_at": null, "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/b331a5a4-8d79-4014-9381-173a9feddf6e", "rel": "self"}, {"href": "http://localhost/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/ports", "rel": "self"}, {"href": "http://localhost/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/states", "rel": "self"}, {"href": "http://localhost/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/volume", "rel": "self"}, {"href": "http://localhost/nodes/b331a5a4-8d79-4014-9381-173a9feddf6e/volume", "rel": "bookmark"}]} GET /v1/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b90f47fb-317f-4b7f-8fac-4ac3e1baf9bd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "ed5f4f84-1fd2-4dbd-b78b-adbd3369b175", "created_at": "2024-09-05T08:47:56.099697+00:00", "updated_at": null, "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/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175", "rel": "self"}, {"href": "http://localhost/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/ports", "rel": "self"}, {"href": "http://localhost/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/states", "rel": "self"}, {"href": "http://localhost/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/volume", "rel": "self"}, {"href": "http://localhost/nodes/ed5f4f84-1fd2-4dbd-b78b-adbd3369b175/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.058983s] ... 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-3bb1b2d0-60f8-470d-b4e3-2da4b4fc07d2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.289210s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_member [0.080250s] ... 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-5fde06ca-61bf-4105-b604-355be901903a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.052200s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-442332aa-3445-439e-b39f-6fdac772099b 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": "2024-09-05T08:47:56.142170+00:00", "updated_at": null, "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-deb0b5c3-0c92-40c1-86e8-7a17ddadfc95 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": "2024-09-05T08:47:56.142170+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected ": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.048705s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.092161s] ... 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-bef0ae2e-1a02-4030-a338-fe006fb82568 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_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.043995s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.062598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17a9c76a-cfad-4f94-a85a-3f78f230d8b1 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": "2024-09-05T08:47:56.204504+00:00", "updated_at": null, "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-9ca12b28-46b6-4826-a753-8aa3257e3851 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": "2024-09-05T08:47:56.204504+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected ": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_observer [0.104181s] ... 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-e1f15271-8518-4a5f-9c45-e134eb1f675a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.025887s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.022242s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.056014s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d578a4be-4295-4e11-ba6a-5101f3f4dd2c 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": "2024-09-05T08:47:56.264768+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": true, "retired_reason": "warranty expired", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.078083s] ... 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-1c665549-f9c1-4504-bdd9-a7fab27cb4b1 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-c66b9e4d-e769-410d-8c85-dbc9e53bce8c 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.031184s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.022720s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_post_admin [0.097452s] ... 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-4cf70643-9294-498c-b043-0ea2fe9c42c1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.024349s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.053658s] ... 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-effafabb-60d1-4e2e-b40a-3c448abb9b57 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": "2024-09-05T08:47:56.333968+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': 'fa3ac53d-56af-4a09-a56c-8f4c6da891e2', 'name': '9d130596-c12b-4c00-9e79-6e724746b482', '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-35b5f970-2dc5-4c25-b939-cf760c03bdd5 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot [0.070338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-090587f5-9dc8-4775-86cb-038541c0d878 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3", "created_at": "2024-09-05T08:47:56.329779+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/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3", "rel": "self"}, {"href": "http://localhost/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/ports", "rel": "self"}, {"href": "http://localhost/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/states", "rel": "self"}, {"href": "http://localhost/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/volume", "rel": "self"}, {"href": "http://localhost/nodes/b40fad56-3bdc-4cf2-8f4a-44fc7b761ad3/volume", "rel": "bookmark"}]} GET /v1/nodes/60d67032-f682-4b23-beba-9162ae47e42b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0ab42b0-73db-42c4-9379-40fbea351e30 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "60d67032-f682-4b23-beba-9162ae47e42b", "created_at": "2024-09-05T08:47:56.343124+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/60d67032-f682-4b23-beba-9162ae47e42b", "rel": "self"}, {"href": "http://localhost/nodes/60d67032-f682-4b23-beba-9162ae47e42b", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/60d67032-f682-4b23-beba-9162ae47e42b/ports", "rel": "self"}, {"href": "http://localhost/nodes/60d67032-f682-4b23-beba-9162ae47e42b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/60d67032-f682-4b23-beba-9162ae47e42b/states", "rel": "self"}, {"href": "http://localhost/nodes/60d67032-f682-4b23-beba-9162ae47e42b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/60d67032-f682-4b23-beba-9162ae47e42b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/60d67032-f682-4b23-beba-9162ae47e42b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/60d67032-f682-4b23-beba-9162ae47e42b/volume", "rel": "self"}, {"href": "http://localhost/nodes/60d67032-f682-4b23-beba-9162ae47e42b/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older [0.021294s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.019041s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.028191s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.060157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9978afe-a17a-4dd7-aa79-cfc714c0296c 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": "2024-09-05T08:47:56.386694+00:00", "updated_at": null, "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-4b154801-e3d9-4c6e-9b29-715ae6c7035f 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": "2024-09-05T08:47:56.386694+00:00", "updated_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_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.023579s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.082710s] ... 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-0b4937ae-dcb6-4b2e-9741-4227870027b3 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": "2024-09-05T08:47:56.387153+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-b44839ea-27d9-4847-95a7-30bd08c44599 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": "2024-09-05T08:47:56.387153+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.041876s] ... 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-b1784c76-dba7-4a95-a342-a73669945b93 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.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.026382s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member [0.137343s] ... 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-84afa642-f810-4ead-b892-2bd014f83e4a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.021917s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.053733s] ... 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-f554b306-68fe-4629-9f79-da586a4d8953 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": "2024-09-05T08:47:56.486024+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.019222s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode [0.049269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/c46e7642-a338-4696-b163-6ba81d3e1aa5/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0447b29e-c54a-4890-8380-ffaf670a9f31 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/452c57a7-0985-4865-a849-cb347a464378/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9bde838-576e-4563-8c69-07b7990f606e 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} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.019592s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.023848s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.026408s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_observer [0.112996s] ... 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-00cbaf75-71c2-4162-ad5c-1d314c3124b8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.067124s] ... 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-323fdadd-3c0d-4fec-828c-b31ff449703b 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-5a569a6d-bc45-437f-b1ef-d97f6adc2176 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_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.092881s] ... 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-3b6ea7a8-7db3-495e-8058-5089f38f9a5a 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": "2024-09-05T08:47:56.531601+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-da8b0aa9-8d98-42a1-a71d-c02454b12646 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": "2024-09-05T08:47:56.531601+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.022635s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.018884s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.038166s] ... 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-782d4d2f-ee8c-4f06-8125-41d7552b2042 X-Openstack-Ironic-Api-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.TestListNodes.test_node_states_by_name [0.042561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3419888a-5026-4dba-bb66-2846991800d4 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"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.019635s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.018729s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin [0.077852s] ... 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-0cadd1fa-adf4-489d-ae4e-30fd293628aa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.028283s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.070316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b25153e-8a4e-41e5-86d2-a00e533c115e 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": "2024-09-05T08:47:56.654329+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-ba57d9d5-5d32-4098-8407-6bcaff8c4423 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": "2024-09-05T08:47:56.654329+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.030535s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.091047s] ... 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/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187 Openstack-Request-Id: req-9873f3ff-cc64-4e97-9a4a-612f460d84b2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "67cdb08d-0c6b-4aa3-9880-f7f0a35bb187", "created_at": "2024-09-05T08:47:56.688114+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/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187", "rel": "self"}, {"href": "http://localhost/portgroups/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187/ports", "rel": "self"}, {"href": "http://localhost/portgroups/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187/ports", "rel": "bookmark"}]} GET /v1/portgroups/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7ca56b8-3dec-4ba8-93b6-610a83e89139 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "67cdb08d-0c6b-4aa3-9880-f7f0a35bb187", "created_at": "2024-09-05T08:47:56.688114+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/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187", "rel": "self"}, {"href": "http://localhost/portgroups/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187/ports", "rel": "self"}, {"href": "http://localhost/portgroups/67cdb08d-0c6b-4aa3-9880-f7f0a35bb187/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.021562s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.041882s] ... 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-96a95484-8deb-4105-9e1d-f1f24293039f 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"}} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.019429s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member [0.099833s] ... 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-3ccdc524-0f78-434a-92c7-d671fe96ecc1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.049969s] ... 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-be951e1a-e090-45c7-9cb0-6b980020025f X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.019701s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.026351s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.046587s] ... 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-845ef1db-9a96-442c-bbdb-f325e2856086 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.085024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/240cc552-cdf7-46ce-9010-e7bf2b02c40a/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-151bfe15-d246-4dcd-9552-5747176f79a9 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/d717ded6-ba19-42fd-9a92-02123c337720/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8b6338d-131c-4692-936a-ea8c92b04a77 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} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.040629s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer [0.098046s] ... 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-108f2d4a-d8e5-479f-b6dd-314536b6f13a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.030851s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.019957s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.019679s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.025903s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_management_indicators_get_admin [0.091296s] ... 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-a0fdb7fd-6b02-40e0-85b4-46f4ffcc188d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.142575s] ... 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-d4e79d41-e9b1-4856-b65b-07e3bdb5c4c9 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.127314s] ... 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-5b10d201-4e7a-4f68-b0bb-673992c65f8a 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-3f53aa13-3ae6-4f9f-a275-43b040d22bb8 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} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.035241s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.020269s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.046450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2619ae8-258e-46d8-9885-450a37207183 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": "2024-09-05T08:47:56.994617+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-13436abf-3130-4248-a668-a2ed9362b4ce 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": "2024-09-05T08:47:56.994617+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.021355s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.019061s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.018480s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.055483s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c826e90a-a898-421a-a41b-f8315b3b76ef 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": "2024-09-05T08:47:57.041921+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-ca0f65b4-83bd-4c3b-940c-4aa18cc60664 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": "2024-09-05T08:47:57.041921+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes /1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.024421s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_member [0.138581s] ... 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-86c0af74-34fe-4d48-bc1e-a6a2a913b657 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.030662s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.153019s] ... 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-016bae2d-7b3f-4cf4-b25e-d5db54689a3e X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.055658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5962ca97-d7c1-4c58-b67c-723fcb9ef26e 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.025030s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.038549s] ... 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-a5844f63-5bff-43d3-bc06-7663b41976bf 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.045570s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.038758s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_observer [0.146283s] ... 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-40273fdc-d1c6-4941-ae8f-99a1b071eb38 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.131450s] ... 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-dff5af77-3c4a-44e5-842c-c77d96cf409b 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-d1e9836f-0831-4fca-ab66-860bf7a04f47 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.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.052103s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.077060s] ... 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-b2dc3c24-c165-44ad-9f98-5a16d4185927 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": "2024-09-05T08:47:57.319043+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.050603s] ... ok {3} 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. {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.033957s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.026972s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.065178s] ... 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-35334a11-965d-4e92-914f-cb57ddd465cf X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.029700s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.059095s] ... 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-f477c192-d9eb-41ff-8b3c-2d946dcee129 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": "2024-09-05T08:47:57.447188+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-1a187125-5a8c-4a49-bb98-1ca1d34aae6d 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": "2024-09-05T08:47:57.447188+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"}]} {3} 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. {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.044683s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.035210s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.060084s] ... 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-8665cc2b-0371-41cc-8560-78c811c2e623 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": "2024-09-05T08:47:57.503523+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-95dcb2df-71e5-43b2-a4a4-e5b8cba883c9 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": "2024-09-05T08:47:57.503523+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.027676s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.378128s] ... 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-1c2e7a3a-73bd-4927-956a-926bae19ddf2 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": "0f35282b-b063-46f6-9acc-482e667f87cc", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/0f35282b-b063-46f6-9acc-482e667f87cc", "rel": "self"}, {"href": "http://localhost/portgroups/0f35282b-b063-46f6-9acc-482e667f87cc", "rel": "bookmark"}]}, {"uuid": "7ebae0a7-0ef3-4047-a113-c640546d041c", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/7ebae0a7-0ef3-4047-a113-c640546d041c", "rel": "self"}, {"href": "http://localhost/portgroups/7ebae0a7-0ef3-4047-a113-c640546d041c", "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-f5c81483-1bf8-4abf-ad47-29a27b1f0593 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": "0f35282b-b063-46f6-9acc-482e667f87cc", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/0f35282b-b063-46f6-9acc-482e667f87cc", "rel": "self"}, {"href": "http://localhost/portgroups/0f35282b-b063-46f6-9acc-482e667f87cc", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=0f35282b-b063-46f6-9acc-482e667f87cc"} {3} 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. {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.022472s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.042903s] ... 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-752b2172-abe9-4074-88a1-d06cb31e1634 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.021535s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.021710s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.043223s] ... 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-d615e330-cc74-4000-be52-c789d8486b60 X-Openstack-Ironic-Api-Maximum-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.031448s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.090335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89a30123-b618-45d0-acc8-cb88c7283702 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": "2024-09-05T08:47:57.590082+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.022376s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin [0.119500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d279baa-0f55-43a3-afed-fbaaa0e03318 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.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.033001s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.066120s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6db38ea-85e9-4de5-a503-fb9045d0e6b0 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": "2024-09-05T08:47:57.684461+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.026358s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.126499s] ... 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-63099bd0-0987-434d-b825-e1eb8e5d07ad 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-ac43cf8b-6fa2-4d47-8904-6d21c98078a7 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.021028s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.037905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.020424s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_member [0.102549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a42da4f1-033d-434c-909b-df25d0fe2761 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.020049s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.017939s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.031439s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.095928s] ... 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-774e85b8-7653-4bd4-8bdc-2c9139d77509 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": "2024-09-05T08:47:57.802823+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-c51aecb3-9673-4c34-8a61-b07cee514c1a 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": "2024-09-05T08:47:57.802823+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.096396s] ... 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-52a2086e-afc9-4ad7-9eb2-5d5d8249044a 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": "510b9350-ef9f-459d-bc20-eedde6d339d9", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/510b9350-ef9f-459d-bc20-eedde6d339d9", "rel": "self"}, {"href": "http://localhost/ports/510b9350-ef9f-459d-bc20-eedde6d339d9", "rel": "bookmark"}]}, {"uuid": "32cdd3ee-88a4-4769-bc2d-023ca8a8c266", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/32cdd3ee-88a4-4769-bc2d-023ca8a8c266", "rel": "self"}, {"href": "http://localhost/ports/32cdd3ee-88a4-4769-bc2d-023ca8a8c266", "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-697c3bbe-bb81-40cf-909c-654326c1b6e5 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": "510b9350-ef9f-459d-bc20-eedde6d339d9", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/510b9350-ef9f-459d-bc20-eedde6d339d9", "rel": "self"}, {"href": "http://localhost/ports/510b9350-ef9f-459d-bc20-eedde6d339d9", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=510b9350-ef9f-459d-bc20-eedde6d339d9"} {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.027667s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.036563s] ... 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-62026486-1cf4-43cc-8f5d-98a96a49f4ae X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.019288s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.038000s] ... 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_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.039346s] ... 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-4fc40e8c-855c-482c-8043-77148eef8ad3 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": "2024-09-05T08:47:57.903978+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.039512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a90d6b4-7452-4735-a8b0-7492e78071f5 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": "2024-09-05T08:47:57.917663+00:00", "updated_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 [0.052618s] ... 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-0a86daa0-d158-4a05-9fe5-ba66b89760b1 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-efedd430-eeb5-4bc6-8435-22ab0acd92c7 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_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.036229s] ... 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-8a45f54b-ff6d-498c-9a06-56fbc6a9586e X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.060094s] ... 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-1d59e3b2-cdd6-4dc7-b909-dfb431a7482d 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_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.057571s] ... 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-cd6da7f7-55d0-41cc-b1e4-152e42119c93 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.081758s] ... 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-8c33db87-6dc2-4239-98aa-449fd1b8bfae 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": "2024-09-05T08:47:58.000712+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-eb4389e6-908e-4386-8c4e-654d053c1fb5 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": "2024-09-05T08:47:58.000712+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.038522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.028441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/d8be5165-ebb6-46b7-a847-726caa91dd77 WITH {'callback_url': 'url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5b56c78-600f-444d-b285-d1ea7c2889c6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d8be5165-ebb6-46b7-a847-726caa91dd77 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.040151s] ... 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-1c15e567-4bf3-4a20-b843-a7d1e9e4c644 X-Openstack-Ironic-Api-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.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.034170s] ... 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-6d763889-ab86-416b-820d-f9cb8f0c799f 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.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.048159s] ... 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-ee6e033b-48cf-4e82-833c-cbd4d34fb6b6 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}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.054445s] ... 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-28049c2e-9a70-4a6b-874e-ac8c2d3a7f11 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.TestListNodes.test_sort_key [0.057779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e387127-6f57-4f3c-8098-779b2d548a84 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": "279b9a23-04a3-4c0a-8704-50fd06bd3c89", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/279b9a23-04a3-4c0a-8704-50fd06bd3c89", "rel": "self"}, {"href": "http://localhost/nodes/279b9a23-04a3-4c0a-8704-50fd06bd3c89", "rel": "bookmark"}]}, {"uuid": "5d5f94f7-4b64-40ba-bd1d-d63dc63f84a2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5d5f94f7-4b64-40ba-bd1d-d63dc63f84a2", "rel": "self"}, {"href": "http://localhost/nodes/5d5f94f7-4b64-40ba-bd1d-d63dc63f84a2", "rel": "bookmark"}]}, {"uuid": "99ed37cd-0869-4188-a227-9458a4e29bdf", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/99ed37cd-0869-4188-a227-9458a4e29bdf", "rel": "self"}, {"href": "http://localhost/nodes/99ed37cd-0869-4188-a227-9458a4e29bdf", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.032770s] ... 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-4b359b97-1cf9-4a92-8d8e-776c2d98c5e7 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_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.099451s] ... 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/0c326175-ed8c-4a58-a34c-246b19fd9cc8 Openstack-Request-Id: req-7ce37240-bd4e-4258-ae78-a418be363583 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0c326175-ed8c-4a58-a34c-246b19fd9cc8", "created_at": "2024-09-05T08:47:58.141581+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0c326175-ed8c-4a58-a34c-246b19fd9cc8", "rel": "self"}, {"href": "http://localhost/volume/connectors/0c326175-ed8c-4a58-a34c-246b19fd9cc8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/0c326175-ed8c-4a58-a34c-246b19fd9cc8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae190021-55ab-41a8-8e00-ddeba4a95e21 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0c326175-ed8c-4a58-a34c-246b19fd9cc8", "created_at": "2024-09-05T08:47:58.141581+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0c326175-ed8c-4a58-a34c-246b19fd9cc8", "rel": "self"}, {"href": "http://localhost/volume/connectors/0c326175-ed8c-4a58-a34c-246b19fd9cc8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_observer [0.394850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-177e316d-c2ec-4fc4-9b5f-10941ae79b67 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_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.032106s] ... 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-72642959-9269-4635-b066-e266b8f0bb57 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.TestListNodes.test_sort_key_allowed [0.049692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a876af4-246c-4377-8e84-c270b79656b7 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": "ce19e9b3-8091-4089-81d4-08c43c538de8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ce19e9b3-8091-4089-81d4-08c43c538de8", "rel": "self"}, {"href": "http://localhost/nodes/ce19e9b3-8091-4089-81d4-08c43c538de8", "rel": "bookmark"}]}, {"uuid": "36069a75-2701-4c68-ac6b-61c2b06417d0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/36069a75-2701-4c68-ac6b-61c2b06417d0", "rel": "self"}, {"href": "http://localhost/nodes/36069a75-2701-4c68-ac6b-61c2b06417d0", "rel": "bookmark"}]}, {"uuid": "86f9b5ab-d5ea-45ea-b7e3-408b83c653ab", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/86f9b5ab-d5ea-45ea-b7e3-408b83c653ab", "rel": "self"}, {"href": "http://localhost/nodes/86f9b5ab-d5ea-45ea-b7e3-408b83c653ab", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.040039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.034488s] ... 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-f65d10db-4eef-4ced-a179-0cc7cefca43f 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.TestListNodes.test_sort_key_invalid [0.060690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c639de31-4358-47dc-9432-41e1964f3b60 X-Openstack-Ironic-Api-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-d52f9875-4b6a-4f45-9254-fbb259dfe110 X-Openstack-Ironic-Api-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-2a30b646-a048-42e5-9ffd-5537b2bf5689 X-Openstack-Ironic-Api-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-00839275-5dd7-4bd8-a902-d66d04ca300b X-Openstack-Ironic-Api-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-7b65f03f-8833-4e46-816c-0db7a0140e5a X-Openstack-Ironic-Api-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-01dcec0e-4c06-49bf-ba66-b6a16515ce63 X-Openstack-Ironic-Api-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-77d435ef-1525-4757-b786-b8484f2ac664 X-Openstack-Ironic-Api-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-20b40fe4-379c-4e7a-a3e4-34b03c478c26 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_post_admin [0.118017s] ... 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/3b4d90b5-6415-4886-a463-97b86ee32a37 Openstack-Request-Id: req-7ffa9bc6-f50b-40b9-8e1d-d1914f491f1c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "3b4d90b5-6415-4886-a463-97b86ee32a37", "created_at": "2024-09-05T08:47:58.282836+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/3b4d90b5-6415-4886-a463-97b86ee32a37", "rel": "self"}, {"href": "http://localhost/portgroups/3b4d90b5-6415-4886-a463-97b86ee32a37", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/3b4d90b5-6415-4886-a463-97b86ee32a37/ports", "rel": "self"}, {"href": "http://localhost/portgroups/3b4d90b5-6415-4886-a463-97b86ee32a37/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.067606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-79c8d51a-f180-4b4e-a953-36ee4727551d 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.TestListNodes.test_sort_key_not_allowed [0.047756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-048840f1-ae8c-4561-b4ab-9a14f1aa9e53 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_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.033924s] ... 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-3e14281e-70f3-4c03-b4c7-0d01ad455b1f 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_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.028488s] ... 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-01a581cf-9584-4d07-b2f3-b08b1a30b65a 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member [0.076961s] ... 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-1cfe784f-89fb-419d-b0ff-0364a296e3d0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestListNodes.test_unassociated_nodes_insensitive [0.091963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-983e4f21-80bb-4fc4-8f46-ca0c49f2c62e 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": "473e2135-f22a-45fb-b701-40f83cd36c86", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/473e2135-f22a-45fb-b701-40f83cd36c86", "rel": "self"}, {"href": "http://localhost/nodes/473e2135-f22a-45fb-b701-40f83cd36c86", "rel": "bookmark"}]}, {"uuid": "369d5738-b814-41ea-89cd-f159b1ad67a7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/369d5738-b814-41ea-89cd-f159b1ad67a7", "rel": "self"}, {"href": "http://localhost/nodes/369d5738-b814-41ea-89cd-f159b1ad67a7", "rel": "bookmark"}]}, {"uuid": "32d7272a-191b-4168-aeae-7a7c0c392e00", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/32d7272a-191b-4168-aeae-7a7c0c392e00", "rel": "self"}, {"href": "http://localhost/nodes/32d7272a-191b-4168-aeae-7a7c0c392e00", "rel": "bookmark"}]}]} GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8bb37203-85c7-4f00-aca7-4fffebb8663e 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": "473e2135-f22a-45fb-b701-40f83cd36c86", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/473e2135-f22a-45fb-b701-40f83cd36c86", "rel": "self"}, {"href": "http://localhost/nodes/473e2135-f22a-45fb-b701-40f83cd36c86", "rel": "bookmark"}]}, {"uuid": "369d5738-b814-41ea-89cd-f159b1ad67a7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/369d5738-b814-41ea-89cd-f159b1ad67a7", "rel": "self"}, {"href": "http://localhost/nodes/369d5738-b814-41ea-89cd-f159b1ad67a7", "rel": "bookmark"}]}, {"uuid": "32d7272a-191b-4168-aeae-7a7c0c392e00", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/32d7272a-191b-4168-aeae-7a7c0c392e00", "rel": "self"}, {"href": "http://localhost/nodes/32d7272a-191b-4168-aeae-7a7c0c392e00", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.037479s] ... 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-6f0de501-e64d-4d0a-8343-5822b2ebf4cc 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.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.039186s] ... 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-1a2423e1-22cd-49b6-80eb-8ab4ce0b5b7f 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_observer [0.089308s] ... 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-6ffd5c8d-4831-4bf9-8741-50018e3cb933 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestListNodes.test_unassociated_nodes_with_limit [0.071207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c6787c7-4f3d-4b99-bad2-70797adbf75a 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": "658eff73-13f5-4936-95f6-e4967b4ab18b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/658eff73-13f5-4936-95f6-e4967b4ab18b", "rel": "self"}, {"href": "http://localhost/nodes/658eff73-13f5-4936-95f6-e4967b4ab18b", "rel": "bookmark"}]}, {"uuid": "2ec9d0cf-bb86-4f0a-9662-1ec6f9a91ff6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2ec9d0cf-bb86-4f0a-9662-1ec6f9a91ff6", "rel": "self"}, {"href": "http://localhost/nodes/2ec9d0cf-bb86-4f0a-9662-1ec6f9a91ff6", "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=2ec9d0cf-bb86-4f0a-9662-1ec6f9a91ff6"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.033335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/b7cc8083-0d26-4299-b9ad-ebd5adca6963 WITH {'callback_url': 'url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f7b910dc-2a32-423f-a3b6-f54c86ce8f37 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.TestListNodes.test_validate_by_name [0.047720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d178486-9c6b-4b2c-b800-71f80bf08ce2 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_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.348805s] ... 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-e2461ef8-b7a9-46ef-949e-016000bc22bb X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version [0.079395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8bdf72cd-2fb5-4c30-949b-53d15d42ef1d 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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin [0.103414s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f30b2a7-491e-4125-8f8a-f2d0e1871645 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": "2024-09-05T08:47:58.520590+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.042389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7d5c9737-deb8-4e43-b9bf-ff4e13e2db46 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_connector_id [0.037848s] ... 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-fc32c19e-769c-46ac-a25a-105c56906f97 X-Openstack-Ironic-Api-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_root.TestV1Routing.test_min_version [0.030686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e22e1392-70cd-40f9-bcb2-acb9e20337ca 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.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.036133s] ... 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-fcd4fbf0-f091-458c-bc72-0f980ce7f0f1 X-Openstack-Ironic-Api-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.TestListNodes.test_validate_by_uuid [0.050723s] ... 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-804dc327-0add-4fa0-bfaa-4c780b0dc65f 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_root.TestV1Routing.test_route_checks_version [0.037574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e89ef0e-c4a7-48a9-aa44-49e2acc2dd15 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_member [0.073261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f6417c1f-ee92-48c8-be48-ea1996a557c6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.039251s] ... 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-42b0911e-27b2-41ae-9233-c467526b7fa0 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy [0.044490s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.048591s] ... 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-375ede1e-0cd4-46e2-9666-11f323eacfe0 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_utils.TestCheckListPolicy.test_check_list_policy_forbidden [0.028867s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.041529s] ... 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-181d824b-a8b0-4d08-9981-038193e47113 X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer [0.083093s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f384c0ae-1f12-4f49-b35d-efad51f9613f 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": "2024-09-05T08:47:58.687797+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.029847s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.018403s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.085831s] ... 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-b43497a9-a0b3-4620-a133-339ef39d7024 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": "a4ebf31b-a9b9-41d8-b97e-3671ab24c0ae", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a4ebf31b-a9b9-41d8-b97e-3671ab24c0ae", "rel": "self"}, {"href": "http://localhost/volume/connectors/a4ebf31b-a9b9-41d8-b97e-3671ab24c0ae", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "267ae72f-d026-45d5-9e6a-b69c641ca041", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/267ae72f-d026-45d5-9e6a-b69c641ca041", "rel": "self"}, {"href": "http://localhost/volume/connectors/267ae72f-d026-45d5-9e6a-b69c641ca041", "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-239d61ed-a8c9-4d37-ac84-776dbbed495d 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": "a4ebf31b-a9b9-41d8-b97e-3671ab24c0ae", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a4ebf31b-a9b9-41d8-b97e-3671ab24c0ae", "rel": "self"}, {"href": "http://localhost/volume/connectors/a4ebf31b-a9b9-41d8-b97e-3671ab24c0ae", "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=a4ebf31b-a9b9-41d8-b97e-3671ab24c0ae"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.069604s] ... 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-b7c011b1-853b-457f-b685-921aa904d7b5 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": "2024-09-05T08:47:58.755893+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': '96e79d94-1ed0-4a75-8de3-a0def9ce1aac', '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-69b10b05-b7fe-4dd9-858b-53b4c3928431 X-Openstack-Ironic-Api-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_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.028687s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin [0.080543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20b5ca80-9a40-4af2-a55c-6a64238d9bfc 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": "2024-09-05T08:47:58.755216+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.040730s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.064367s] ... 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-998ffe9e-4765-48b5-8f55-679bc160e5d2 X-Openstack-Ironic-Api-Maximum-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.067014s] ... 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-f747fcca-fc1f-4dfd-a182-5435dbfc5106 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": "2024-09-05T08:47:58.827220+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-688f457f-3d01-4f50-839d-f483a2896432 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": "2024-09-05T08:47:58.827220+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_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.030061s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.022310s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.044375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_member [0.082709s] ... 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-4dae8ac6-cbef-4e14-9205-665dcee18c01 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.046395s] ... 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-1b4e86e8-319c-4986-910b-c6afdb5d944d 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": "2024-09-05T08:47:58.882084+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_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.017656s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.041608s] ... 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-79237b98-99e8-4cac-887b-7857a9f5b037 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.049984s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.063852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbeab8fe-2762-4d0f-ae5c-dcabfa9d16f1 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": "13e068d7-2f5e-4daf-83e6-a3549e373cd8", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/13e068d7-2f5e-4daf-83e6-a3549e373cd8", "rel": "self"}, {"href": "http://localhost/volume/targets/13e068d7-2f5e-4daf-83e6-a3549e373cd8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8d703bbe-bbde-47ea-9e81-7c470aa42051", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8d703bbe-bbde-47ea-9e81-7c470aa42051", "rel": "self"}, {"href": "http://localhost/volume/targets/8d703bbe-bbde-47ea-9e81-7c470aa42051", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6b7b812a-e824-4419-a763-b0813aff3ae6", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6b7b812a-e824-4419-a763-b0813aff3ae6", "rel": "self"}, {"href": "http://localhost/volume/targets/6b7b812a-e824-4419-a763-b0813aff3ae6", "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=6b7b812a-e824-4419-a763-b0813aff3ae6"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.040426s] ... 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-8b81b8b6-7782-4182-a75c-33eda7a9f3fa 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_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.027061s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.029997s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.047389s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e0021f5-f210-4630-a067-91d1642aa1a2 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": "a5f3414c-9695-449d-852b-72cc4c7c8ce8", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/a5f3414c-9695-449d-852b-72cc4c7c8ce8", "rel": "self"}, {"href": "http://localhost/volume/targets/a5f3414c-9695-449d-852b-72cc4c7c8ce8", "rel": "bookmark"}]}, {"uuid": "f4ef9416-2e84-432d-91d9-7376529c0e3a", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/f4ef9416-2e84-432d-91d9-7376529c0e3a", "rel": "self"}, {"href": "http://localhost/volume/targets/f4ef9416-2e84-432d-91d9-7376529c0e3a", "rel": "bookmark"}]}, {"uuid": "3a07489a-1a81-43f9-8ffa-dc19f04991f2", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/3a07489a-1a81-43f9-8ffa-dc19f04991f2", "rel": "self"}, {"href": "http://localhost/volume/targets/3a07489a-1a81-43f9-8ffa-dc19f04991f2", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=3a07489a-1a81-43f9-8ffa-dc19f04991f2"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer [0.133457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e715f49-deb4-4d81-8714-adf1072898c4 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": "2024-09-05T08:47:58.968588+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.021679s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.052708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58fc63b9-fc33-461d-b9ec-25abce6eaae4 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": "2024-09-05T08:47:59.006473+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.017729s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.060021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4bc407a5-38ef-4ad4-aaa5-e774fde01b71 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": "77ae19ea-1f59-447e-8470-0ae24ea46375", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/77ae19ea-1f59-447e-8470-0ae24ea46375", "rel": "self"}, {"href": "http://localhost/volume/targets/77ae19ea-1f59-447e-8470-0ae24ea46375", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6711e8b0-5a60-4d63-a61e-51e8dceff017", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6711e8b0-5a60-4d63-a61e-51e8dceff017", "rel": "self"}, {"href": "http://localhost/volume/targets/6711e8b0-5a60-4d63-a61e-51e8dceff017", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "010f77f7-0da5-45bc-8347-4632d153789e", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/010f77f7-0da5-45bc-8347-4632d153789e", "rel": "self"}, {"href": "http://localhost/volume/targets/010f77f7-0da5-45bc-8347-4632d153789e", "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=010f77f7-0da5-45bc-8347-4632d153789e"} {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.028233s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.023467s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.049372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bae85eb6-9708-4776-8d9e-8bc73b47210e 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": "b96ed70d-8a21-4e89-a307-6fbd209b3a21", "created_at": "2024-09-05T08:47:59.092923+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/b96ed70d-8a21-4e89-a307-6fbd209b3a21", "rel": "self"}, {"href": "http://localhost/volume/targets/b96ed70d-8a21-4e89-a307-6fbd209b3a21", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "58dc5246-6f41-4f76-a240-7bdb3040a1ab", "created_at": "2024-09-05T08:47:59.093878+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/58dc5246-6f41-4f76-a240-7bdb3040a1ab", "rel": "self"}, {"href": "http://localhost/volume/targets/58dc5246-6f41-4f76-a240-7bdb3040a1ab", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "2f42bc96-8251-4080-b42c-d787f240353e", "created_at": "2024-09-05T08:47:59.094742+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/2f42bc96-8251-4080-b42c-d787f240353e", "rel": "self"}, {"href": "http://localhost/volume/targets/2f42bc96-8251-4080-b42c-d787f240353e", "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=2f42bc96-8251-4080-b42c-d787f240353e"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin [0.106610s] ... 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-908a069e-2b5f-49e5-a30d-8e07bd5fdcf1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.111870s] ... 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-ef449b6b-3ba9-4ed4-aa4c-4b6e042aafc5 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": "56966e82-be32-425f-83d8-d3cbc001c3f2", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/56966e82-be32-425f-83d8-d3cbc001c3f2", "rel": "self"}, {"href": "http://localhost/volume/targets/56966e82-be32-425f-83d8-d3cbc001c3f2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "106b10fd-6f9f-4e83-9817-67e947094aa8", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/106b10fd-6f9f-4e83-9817-67e947094aa8", "rel": "self"}, {"href": "http://localhost/volume/targets/106b10fd-6f9f-4e83-9817-67e947094aa8", "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-37e3cafa-8f26-4359-a84e-21e9df342b79 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": "56966e82-be32-425f-83d8-d3cbc001c3f2", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/56966e82-be32-425f-83d8-d3cbc001c3f2", "rel": "self"}, {"href": "http://localhost/volume/targets/56966e82-be32-425f-83d8-d3cbc001c3f2", "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=56966e82-be32-425f-83d8-d3cbc001c3f2"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.052033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98a2a6ba-9377-4418-a558-d208c9360673 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": "2024-09-05T08:47:59.152133+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.TestListVolumeTargets.test_detail_against_single [0.037653s] ... 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-ab6c5fa3-9adc-450c-ad81-931bbe5f6ca8 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member [0.089167s] ... 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-24004954-2f05-4272-9822-d69746715654 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.046302s] ... 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-fec100b0-1ae7-41dc-9c62-563dde5e4b63 X-Openstack-Ironic-Api-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.TestListNodes.test_volume_targets_subresource_node_not_found [0.107266s] ... 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-1e7903ae-ccd7-4246-838d-c2c40c36238d X-Openstack-Ironic-Api-Maximum-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.059474s] ... 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-3f565951-a10a-4c53-a6dc-763480c4fa63 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": "2024-09-05T08:47:59.292844+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer [0.104226s] ... 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-79f85729-c8e8-4e52-8bd5-f156c1b2b0cf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.087304s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.066736s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-750a3c92-d47a-49be-9ff0-351890438fb8 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.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin [0.093720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2444c603-c95c-4f44-ad06-0c03e5354d5b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.034539s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory [0.088763s] ... 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-ab9957a4-3108-4dca-98f8-a994595d3baf 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_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.037839s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1489ebe6-d5e1-4ec0-b54f-84003478ddfe X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory_no_inventory [0.052323s] ... 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-c5ab9c0f-c362-4d04-8e7d-2357c07b2c84 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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.056566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f8c68d4-e861-476d-9bef-c8420b2995a5 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member [0.110368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f54e37ad-b860-4735-b783-7aa2b7f7fba9 X-Openstack-Ironic-Api-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_node.TestNodeInventory.test_get_old_version [0.048301s] ... 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_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.110993s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f20928ad-2c87-4ec5-8418-d481211a56b2 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": "897c06fe-919a-4c4f-b080-718b865596ec", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/897c06fe-919a-4c4f-b080-718b865596ec", "rel": "self"}, {"href": "http://localhost/volume/targets/897c06fe-919a-4c4f-b080-718b865596ec", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "134a39ea-9977-4b27-93bb-ed06bd3d8c69", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/134a39ea-9977-4b27-93bb-ed06bd3d8c69", "rel": "self"}, {"href": "http://localhost/volume/targets/134a39ea-9977-4b27-93bb-ed06bd3d8c69", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "07a0256e-a88e-4ed1-810b-f7b6953eb873", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/07a0256e-a88e-4ed1-810b-f7b6953eb873", "rel": "self"}, {"href": "http://localhost/volume/targets/07a0256e-a88e-4ed1-810b-f7b6953eb873", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.541499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1be3c22e-137a-46fa-80f9-2615357c305d 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": "611dc30b-aac7-4849-be01-910a6fdc6485", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/611dc30b-aac7-4849-be01-910a6fdc6485", "rel": "self"}, {"href": "http://localhost/volume/connectors/611dc30b-aac7-4849-be01-910a6fdc6485", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9e3384c7-8d15-4512-9bf7-9f839bd39d08", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9e3384c7-8d15-4512-9bf7-9f839bd39d08", "rel": "self"}, {"href": "http://localhost/volume/connectors/9e3384c7-8d15-4512-9bf7-9f839bd39d08", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b3c47740-4766-4458-a5a9-a0ab85796f8a", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/b3c47740-4766-4458-a5a9-a0ab85796f8a", "rel": "self"}, {"href": "http://localhost/volume/connectors/b3c47740-4766-4458-a5a9-a0ab85796f8a", "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=b3c47740-4766-4458-a5a9-a0ab85796f8a"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer [0.118976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7ede8d20-28da-4039-82fa-8875c3d89d81 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.094672s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.044714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96982dcd-c3c4-445b-a5ed-0b5df77bc7dc 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": "5633027f-668d-4a9c-86c0-526492358e82", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/5633027f-668d-4a9c-86c0-526492358e82", "rel": "self"}, {"href": "http://localhost/volume/connectors/5633027f-668d-4a9c-86c0-526492358e82", "rel": "bookmark"}]}, {"uuid": "d2a389e1-7445-48c2-9982-d06235b02969", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/d2a389e1-7445-48c2-9982-d06235b02969", "rel": "self"}, {"href": "http://localhost/volume/connectors/d2a389e1-7445-48c2-9982-d06235b02969", "rel": "bookmark"}]}, {"uuid": "ca4d4a64-8c24-4b3a-96a9-77861d79178c", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/ca4d4a64-8c24-4b3a-96a9-77861d79178c", "rel": "self"}, {"href": "http://localhost/volume/connectors/ca4d4a64-8c24-4b3a-96a9-77861d79178c", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=ca4d4a64-8c24-4b3a-96a9-77861d79178c"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.068187s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.103212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-773c5366-b55c-4007-beba-dbe8091ab93e 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": "2c57351c-11b6-477a-b9b5-5920e80863e7", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/2c57351c-11b6-477a-b9b5-5920e80863e7", "rel": "self"}, {"href": "http://localhost/volume/targets/2c57351c-11b6-477a-b9b5-5920e80863e7", "rel": "bookmark"}]}, {"uuid": "9cd86529-fb0f-42a9-bacf-7e02353fc69b", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/9cd86529-fb0f-42a9-bacf-7e02353fc69b", "rel": "self"}, {"href": "http://localhost/volume/targets/9cd86529-fb0f-42a9-bacf-7e02353fc69b", "rel": "bookmark"}]}, {"uuid": "2d710b57-528a-4078-8aba-ee9e0e592701", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/2d710b57-528a-4078-8aba-ee9e0e592701", "rel": "self"}, {"href": "http://localhost/volume/targets/2d710b57-528a-4078-8aba-ee9e0e592701", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.062121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4e6c611-41d6-43ab-8623-03f3d97972da 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": "0afed0b5-66dd-4d99-b316-3841634cdc81", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0afed0b5-66dd-4d99-b316-3841634cdc81", "rel": "self"}, {"href": "http://localhost/volume/connectors/0afed0b5-66dd-4d99-b316-3841634cdc81", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "70ec1023-803a-4db6-945d-500f49121e37", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/70ec1023-803a-4db6-945d-500f49121e37", "rel": "self"}, {"href": "http://localhost/volume/connectors/70ec1023-803a-4db6-945d-500f49121e37", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f31d49cd-3cf2-45a9-a6f8-91db03a73313", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f31d49cd-3cf2-45a9-a6f8-91db03a73313", "rel": "self"}, {"href": "http://localhost/volume/connectors/f31d49cd-3cf2-45a9-a6f8-91db03a73313", "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=f31d49cd-3cf2-45a9-a6f8-91db03a73313"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin [0.098439s] ... 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-422dc8c8-4af4-49a8-a058-7c33bbcd2cea 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.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.060538s] ... 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-4b85240e-5eaa-4739-92e8-f13359415a58 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/b3ceefc7-6580-48d6-a19e-075573ffccbc", "rel": "self"}, {"href": "http://localhost/volume/targets/b3ceefc7-6580-48d6-a19e-075573ffccbc", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/7be2a5bd-b0d6-4913-9f1e-76ee2eef7c49", "rel": "self"}, {"href": "http://localhost/volume/targets/7be2a5bd-b0d6-4913-9f1e-76ee2eef7c49", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=7be2a5bd-b0d6-4913-9f1e-76ee2eef7c49"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.052964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6bb6f85-4700-459e-a863-13f63cce386f 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": "c19b46ba-3f0b-4b3b-975c-aa7c44b0bf85", "created_at": "2024-09-05T08:47:59.777376+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c19b46ba-3f0b-4b3b-975c-aa7c44b0bf85", "rel": "self"}, {"href": "http://localhost/volume/connectors/c19b46ba-3f0b-4b3b-975c-aa7c44b0bf85", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "777b325b-7122-4458-90ff-d0935239bead", "created_at": "2024-09-05T08:47:59.778439+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/777b325b-7122-4458-90ff-d0935239bead", "rel": "self"}, {"href": "http://localhost/volume/connectors/777b325b-7122-4458-90ff-d0935239bead", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0ecc6781-2b1f-49a6-aae5-ef2a792a6aa9", "created_at": "2024-09-05T08:47:59.779201+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0ecc6781-2b1f-49a6-aae5-ef2a792a6aa9", "rel": "self"}, {"href": "http://localhost/volume/connectors/0ecc6781-2b1f-49a6-aae5-ef2a792a6aa9", "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=0ecc6781-2b1f-49a6-aae5-ef2a792a6aa9"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.079569s] ... 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-d1de467a-8170-4572-b063-b6dbc0b51273 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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.036814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eab0a6e2-acdc-4cb0-944d-9a351800d6cc 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": "2024-09-05T08:47:59.822448+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_get_custom_fields_invalid_fields [0.045407s] ... 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-af33afab-1379-482f-b87b-34ef3223ae8c X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member [0.096735s] ... 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-77dd66d8-c551-48ce-a9d4-863ac4e70558 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.044177s] ... 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-b5d13321-e9ac-4e7a-a41f-0fccbc4431fe X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.054948s] ... 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-d0d99bda-dcbd-4b6b-b3d5-b25ab8922155 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": "2024-09-05T08:47:59.871150+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_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.057358s] ... 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-ad18e57a-509a-4a4a-8dc0-89aac1bd2d9b X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.050904s] ... 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-7610685d-ffab-4071-acc3-9d29109cb934 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.158142s] ... 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-5e5df171-d009-45b4-8f17-9af5fe9e1537 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": "2024-09-05T08:47:59.871595+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.039771s] ... 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-ee8f59a5-f7fc-461f-8ff4-37cab95c5c8f 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": "2024-09-05T08:47:59.963769+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_get_one_invalid_api_version [0.046702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_observer [0.150510s] ... 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-906f78a6-3e41-46d8-8731-e507bf797f09 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_volume_connector.TestListVolumeConnectors.test_detail_false [0.036827s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6eb25852-7a32-45da-aa0f-7c2ec519057a 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.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.029652s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.067171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1d5a3470-a810-4b39-b34e-bc6ae89967bb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e99e1628-1ffd-4f3b-837f-6dcf7fe20aca X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1d5a3470-a810-4b39-b34e-bc6ae89967bb", "created_at": "2024-09-05T08:48:00.023293+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/1d5a3470-a810-4b39-b34e-bc6ae89967bb", "rel": "self"}, {"href": "http://localhost/volume/targets/1d5a3470-a810-4b39-b34e-bc6ae89967bb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/1d5a3470-a810-4b39-b34e-bc6ae89967bb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-962e4a37-68c3-4b1b-aab8-76b7f748da89 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1d5a3470-a810-4b39-b34e-bc6ae89967bb", "created_at": "2024-09-05T08:48:00.023293+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/1d5a3470-a810-4b39-b34e-bc6ae89967bb", "rel": "self"}, {"href": "http://localhost/volume/targets/1d5a3470-a810-4b39-b34e-bc6ae89967bb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/targets/1d5a3470-a810-4b39-b34e-bc6ae89967bb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5cad9c4-e79a-44c6-8582-870774c105cf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1d5a3470-a810-4b39-b34e-bc6ae89967bb", "created_at": "2024-09-05T08:48:00.023293+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/1d5a3470-a810-4b39-b34e-bc6ae89967bb", "rel": "self"}, {"href": "http://localhost/volume/targets/1d5a3470-a810-4b39-b34e-bc6ae89967bb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.047241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbb0ac33-c516-4ccf-87c0-5ee067c67144 X-Openstack-Ironic-Api-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_node.TestPatch.test_add_ok [0.147866s] ... 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-70324a44-f2bd-41f4-ad8a-d970c1b677e6 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": "2024-09-05T08:48:00.021628+00:00", "updated_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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_detail_get_admin [0.128385s] ... 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-7972d470-c5c7-4c62-a5ca-e06e572d7280 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": "2024-09-05T08:48:00.069187+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.066971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54159bcc-46a9-4d68-bcdd-c722f1ecca8b 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": "b2c16014-248e-417b-874b-46bf57ca9a38", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b2c16014-248e-417b-874b-46bf57ca9a38", "rel": "self"}, {"href": "http://localhost/volume/targets/b2c16014-248e-417b-874b-46bf57ca9a38", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "15a6aa49-b0a1-4d42-90ee-298e9de7c4c0", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/15a6aa49-b0a1-4d42-90ee-298e9de7c4c0", "rel": "self"}, {"href": "http://localhost/volume/targets/15a6aa49-b0a1-4d42-90ee-298e9de7c4c0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "22509897-aa97-4dc3-ad16-30a427a579ab", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/22509897-aa97-4dc3-ad16-30a427a579ab", "rel": "self"}, {"href": "http://localhost/volume/targets/22509897-aa97-4dc3-ad16-30a427a579ab", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "59954f9f-6741-4b43-a7bf-f4f95035ed9a", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/59954f9f-6741-4b43-a7bf-f4f95035ed9a", "rel": "self"}, {"href": "http://localhost/volume/targets/59954f9f-6741-4b43-a7bf-f4f95035ed9a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a4ffeddb-98bb-4541-bac9-1283a7e7ccd9", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a4ffeddb-98bb-4541-bac9-1283a7e7ccd9", "rel": "self"}, {"href": "http://localhost/volume/targets/a4ffeddb-98bb-4541-bac9-1283a7e7ccd9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.045481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7afc0c8a-c192-4bd2-b668-93d5b93a42d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"connectors": []} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.042271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d04f811b-8b30-494a-a6bf-6e4f4dc2a310 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.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_member [0.070168s] ... 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-79f5ee1b-e042-40b4-aab5-32392feacce5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_all_by_node_name_ok [0.055351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c9e2ea3-75a4-41c4-9964-81f052b5eb9a 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": "414204c8-3ae3-4788-8129-b1d364988773", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/414204c8-3ae3-4788-8129-b1d364988773", "rel": "self"}, {"href": "http://localhost/volume/connectors/414204c8-3ae3-4788-8129-b1d364988773", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "208465e1-e2c8-4b5a-9aa0-93460f8c50ec", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/208465e1-e2c8-4b5a-9aa0-93460f8c50ec", "rel": "self"}, {"href": "http://localhost/volume/connectors/208465e1-e2c8-4b5a-9aa0-93460f8c50ec", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a45617dd-048d-4c9a-9bbe-8a31363f0b3f", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a45617dd-048d-4c9a-9bbe-8a31363f0b3f", "rel": "self"}, {"href": "http://localhost/volume/connectors/a45617dd-048d-4c9a-9bbe-8a31363f0b3f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.034456s] ... 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.TestPatch.test_add_root [0.127061s] ... 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-a378addc-10de-43b1-9993-d915a1dd1374 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": "2024-09-05T08:48:00.157465+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.058638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb147b58-c472-4946-8e33-b9a5b66a35ae 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": "30093b3b-7e83-4d36-b7aa-c7530f9bd2e8", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/30093b3b-7e83-4d36-b7aa-c7530f9bd2e8", "rel": "self"}, {"href": "http://localhost/volume/connectors/30093b3b-7e83-4d36-b7aa-c7530f9bd2e8", "rel": "bookmark"}]}, {"uuid": "0c05bb8c-3845-4747-a853-33b5dadc0e2c", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/0c05bb8c-3845-4747-a853-33b5dadc0e2c", "rel": "self"}, {"href": "http://localhost/volume/connectors/0c05bb8c-3845-4747-a853-33b5dadc0e2c", "rel": "bookmark"}]}, {"uuid": "1356a17e-a458-44ff-b1cc-efdadb659392", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/1356a17e-a458-44ff-b1cc-efdadb659392", "rel": "self"}, {"href": "http://localhost/volume/connectors/1356a17e-a458-44ff-b1cc-efdadb659392", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_observer [0.090104s] ... 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-26cb5988-a27b-43df-b557-a1f0400fb7f8 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": "2024-09-05T08:48:00.242857+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.080138s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64891d3a-c63b-4048-b520-ea6e596aa584 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": "81e7893f-4a10-4679-97dc-8a754e4ef0f7", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/81e7893f-4a10-4679-97dc-8a754e4ef0f7", "rel": "self"}, {"href": "http://localhost/volume/targets/81e7893f-4a10-4679-97dc-8a754e4ef0f7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8c7bcf8e-c408-4a41-98d8-e3d482da6107", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8c7bcf8e-c408-4a41-98d8-e3d482da6107", "rel": "self"}, {"href": "http://localhost/volume/targets/8c7bcf8e-c408-4a41-98d8-e3d482da6107", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a7c1a447-6ce3-4fb3-87fd-4173e87b9afa", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a7c1a447-6ce3-4fb3-87fd-4173e87b9afa", "rel": "self"}, {"href": "http://localhost/volume/targets/a7c1a447-6ce3-4fb3-87fd-4173e87b9afa", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.042785s] ... 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-0a19f268-13a4-4c84-a510-e1d6e5cdd48d 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/2a97199e-7de0-4ddd-9738-63bbe3aa5af4", "rel": "self"}, {"href": "http://localhost/volume/connectors/2a97199e-7de0-4ddd-9738-63bbe3aa5af4", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/c27bd545-11c6-4925-ab0a-19f0a14bbaaa", "rel": "self"}, {"href": "http://localhost/volume/connectors/c27bd545-11c6-4925-ab0a-19f0a14bbaaa", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=c27bd545-11c6-4925-ab0a-19f0a14bbaaa"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.060596s] ... 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-d6c3dfac-e113-4809-b0b1-376bc8f1fa51 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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.033597s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.068046s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-12f58cc2-48b8-413e-8b1b-4b56d458dd73 X-Openstack-Ironic-Api-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-715e7d78-c423-4f01-801c-b00f2572f5cd X-Openstack-Ironic-Api-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-9d85f1e4-42bb-4439-8df6-32f461126bb4 X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_ports_get_admin [0.077491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cab29947-37c5-4571-ab61-33ce52ce93d4 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.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.074224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/aaa1468b-9f33-413f-9e02-a59ad447e8b1 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-074236a3-ee58-4fe5-9a80-dd0723cbd1e5 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 aaa1468b-9f33-413f-9e02-a59ad447e8b1 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.067899s] ... 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-11089137-5ec1-4212-809e-02a5b3955b5f X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.070005s] ... 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-899df510-bb9b-4857-adbf-d7678b66bdda 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-eed558ea-b160-4d70-834b-e38407ce8ab0 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"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_member [0.077330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-44e476bf-143b-4de0-a0de-d2c166dffb5e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.038411s] ... 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-87a9c348-f708-4b5f-b41c-dbabdc0262a1 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": "2024-09-05T08:48:00.428541+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.TestPost.test_create_volume_target_doesnt_contain_id [0.060101s] ... 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-0d24e750-a4ff-45c8-b2a4-5b6f986d4b0a 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": "2024-09-05T08:48:00.467967+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-f25c91d6-33b8-4d0b-be9d-5298cdc9be56 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": "2024-09-05T08:48:00.467967+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": 123}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.049074s] ... 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-7f67a71f-d0c2-4116-ba43-24fd652092c6 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_node.TestPatch.test_add_state_in_deployfail [0.135533s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e43b4a4a-5171-45cc-9201-e4f2cdc4252e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1e1ae4b-733f-4d1a-bd97-e32ecb1c10b5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e43b4a4a-5171-45cc-9201-e4f2cdc4252e", "created_at": "2024-09-05T08:48:00.445548+00:00", "updated_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/e43b4a4a-5171-45cc-9201-e4f2cdc4252e", "rel": "self"}, {"href": "http://localhost/nodes/e43b4a4a-5171-45cc-9201-e4f2cdc4252e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e43b4a4a-5171-45cc-9201-e4f2cdc4252e/ports", "rel": "self"}, {"href": "http://localhost/nodes/e43b4a4a-5171-45cc-9201-e4f2cdc4252e/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.039286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.046518s] ... 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-70f2f173-0fdd-4431-ae39-57887e90d9a6 X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer [0.119647s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4f5fdf3-5a4b-4acf-979b-2dd764e0ded8 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.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.056409s] ... 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-7e943a60-b9b0-4c11-b538-f0bfb7561112 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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.054283s] ... 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/564a251f-cf77-4a35-9614-4ccd154355bd Openstack-Request-Id: req-cfdffa1c-c86b-4121-a1b8-5734f0afd047 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "564a251f-cf77-4a35-9614-4ccd154355bd", "created_at": "2024-09-05T08:48:00.570233+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/564a251f-cf77-4a35-9614-4ccd154355bd", "rel": "self"}, {"href": "http://localhost/volume/targets/564a251f-cf77-4a35-9614-4ccd154355bd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/564a251f-cf77-4a35-9614-4ccd154355bd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df0d7cea-0eb5-453c-90c8-a66d3296d0a3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "564a251f-cf77-4a35-9614-4ccd154355bd", "created_at": "2024-09-05T08:48:00.570233+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/564a251f-cf77-4a35-9614-4ccd154355bd", "rel": "self"}, {"href": "http://localhost/volume/targets/564a251f-cf77-4a35-9614-4ccd154355bd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.066724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a1f7ea8-1277-4075-af5b-6f9d0c16ce17 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "899ce550-f2f3-49e0-99db-859d9e411f3e", "created_at": "2024-09-05T08:48:00.563739+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e", "rel": "self"}, {"href": "http://localhost/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4877d971-7560-45ea-b836-f890a3268ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "899ce550-f2f3-49e0-99db-859d9e411f3e", "created_at": "2024-09-05T08:48:00.563739+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e", "rel": "self"}, {"href": "http://localhost/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee1ad681-235a-43db-9758-6513d0960f85 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "899ce550-f2f3-49e0-99db-859d9e411f3e", "created_at": "2024-09-05T08:48:00.563739+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e", "rel": "self"}, {"href": "http://localhost/volume/connectors/899ce550-f2f3-49e0-99db-859d9e411f3e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.045153s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_post_admin [0.077898s] ... 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-8b86cbd5-411d-402b-a725-a07676cb3ebf X-Openstack-Ironic-Api-Maximum-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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.061117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1636e4f8-c0d5-4ed4-9890-8c5871ea2502 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": "e04e340d-9ce3-4ee1-8499-e4a4e1601790", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e04e340d-9ce3-4ee1-8499-e4a4e1601790", "rel": "self"}, {"href": "http://localhost/volume/connectors/e04e340d-9ce3-4ee1-8499-e4a4e1601790", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a5af3c98-7e18-4452-acfb-9b9e4f3f4916", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a5af3c98-7e18-4452-acfb-9b9e4f3f4916", "rel": "self"}, {"href": "http://localhost/volume/connectors/a5af3c98-7e18-4452-acfb-9b9e4f3f4916", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "7125338f-cf70-4673-a50a-fd9e02f4d1ba", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/7125338f-cf70-4673-a50a-fd9e02f4d1ba", "rel": "self"}, {"href": "http://localhost/volume/connectors/7125338f-cf70-4673-a50a-fd9e02f4d1ba", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "64ffedf3-0f9e-4d51-833c-07ca2a4d7175", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/64ffedf3-0f9e-4d51-833c-07ca2a4d7175", "rel": "self"}, {"href": "http://localhost/volume/connectors/64ffedf3-0f9e-4d51-833c-07ca2a4d7175", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "7fbd6490-626e-42c8-94c8-179591c80d12", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/7fbd6490-626e-42c8-94c8-179591c80d12", "rel": "self"}, {"href": "http://localhost/volume/connectors/7fbd6490-626e-42c8-94c8-179591c80d12", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.044942s] ... 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-6d550775-cacd-4ef4-8d9f-795454a551b2 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.093011s] ... 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-07ef58a4-77c0-4095-8cbb-9504f68c05be 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_volume_connector.TestListVolumeConnectors.test_one [0.053080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da233561-bdc6-4ee3-acab-c7821b748aa4 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.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member [0.083074s] ... 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-cdcf8fa2-c852-488f-82bd-4768aed4a095 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.072673s] ... 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-1da8bcbf-1e93-4e02-8d55-7dbdead042c7 X-Openstack-Ironic-Api-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.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.059976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.042663s] ... 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-d16d8432-2662-4af2-bd47-0200b62d527c X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.051742s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9422dee9-cb74-4483-8945-2a3e117f30d9 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": "8876095f-e3b1-4afe-9863-eb6bad6f78e0", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8876095f-e3b1-4afe-9863-eb6bad6f78e0", "rel": "self"}, {"href": "http://localhost/volume/connectors/8876095f-e3b1-4afe-9863-eb6bad6f78e0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "bac1d732-b223-44ca-8e9b-c4298730bda2", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/bac1d732-b223-44ca-8e9b-c4298730bda2", "rel": "self"}, {"href": "http://localhost/volume/connectors/bac1d732-b223-44ca-8e9b-c4298730bda2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f755ec66-16ab-498c-aba0-8e7f6140949d", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f755ec66-16ab-498c-aba0-8e7f6140949d", "rel": "self"}, {"href": "http://localhost/volume/connectors/f755ec66-16ab-498c-aba0-8e7f6140949d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_observer [0.129963s] ... 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-30ae77ac-ed3d-4bd1-8b21-d9a4cd3dde44 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.063587s] ... 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-2412e9d2-a121-4626-8a79-f03b469cb3da X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.040013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d1081b1c-9278-4de7-b957-037a66c874df X-Openstack-Ironic-Api-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-8987f7e0-81a2-454b-98ed-74051696241e X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.081817s] ... 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-6d3ea597-3571-4f53-a8e5-1dd407fb2578 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.062650s] ... 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-8f57e1a6-1f8a-486b-8b2d-f2f067ef3c37 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": "2024-09-05T08:48:00.906558+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_detail_get_admin [0.122208s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0cd22373-a0dc-465f-b61c-d425ab2c65cd 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": "2024-09-05T08:48:00.929845+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}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.306386s] ... 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-d72cd92b-bfff-40e3-8c5b-e7e6f9f0405c 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_volume_connector.TestPatch.test_add_node_id [0.042409s] ... 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-6f063235-570d-471a-a84a-799e1a6af50c X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.062094s] ... 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-ad34503c-559e-4e7b-bcca-d8ba8eb9368e 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": "2024-09-05T08:48:00.985055+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-cb524ac4-5a97-47b9-b7c2-ff8ec0d330d2 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": "2024-09-05T08:48:00.985055+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"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_member [0.069392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6fb41dd3-6b04-4ade-93a3-3f07a4e2741b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.047148s] ... 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-c38998cf-d125-4a34-b24d-7e7718b450d0 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": "2024-09-05T08:48:01.041682+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_volume_connector.TestPatch.test_add_node_uuid [0.074743s] ... 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-b641901b-a0a2-4589-b545-4ab101ee6654 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": "2024-09-05T08:48:01.023802+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.117146s] ... 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-c4b7efef-c896-4660-b298-979b06657521 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": "2024-09-05T08:48:01.013425+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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer [0.068702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ad8e6a4-1868-48c5-9a4a-f4b4e9cd4231 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": "2024-09-05T08:48:01.080193+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.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.044657s] ... 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-0268545b-b8f7-4e93-9475-96e6a29d1357 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.069072s] ... 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-38b9d17c-3bca-4da4-b501-bd01162b6d3c 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": "2024-09-05T08:48:01.151282+00:00", "updated_at": null, "connector_id": "test-connector-id-123", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_port_id_get_admin [0.075278s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f303b1ee-8a98-402b-b470-1c277cc248b0 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": "2024-09-05T08:48:01.148001+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} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.105580s] ... 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-f8574fd4-5767-432e-a0a8-4b2d2d11c068 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-b79252d6-9bdd-48d5-ac15-9ecb18edb98a 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-ba6151d5-7edc-4360-be57-7df5a1b5956e 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-1c331383-cbb8-4490-878d-46cc828521c3 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-0c74aa08-3350-42e7-9ef4-5585ac252274 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-887a7204-943f-4c84-8ed2-3ceba169147c 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_volume_connector.TestPatch.test_add_root_non_existent [0.050852s] ... 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-94de7598-9422-4621-9161-d5fe7711876f X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member [0.068682s] ... 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-cafbb1d7-a369-4c6e-90e2-28835450700b X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.048069s] ... 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-2edf9aa1-68ec-4aa6-87dd-f63af91e23bc 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.140037s] ... 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-106ce490-365c-474f-a95f-916df886547b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.052740s] ... 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-881b0cea-1788-4005-868a-82681240a75b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.058281s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/79cba52c-0514-4abd-8472-ed6b890667c2 WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '5e5b4190-ca81-4949-8b64-945b7704e909'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-582be7d3-0fc6-4aca-b22f-cce4256ece1f X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer [0.090702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c63288d-5c16-499b-881d-c151d1344b81 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": "2024-09-05T08:48:01.306794+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} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.046434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8c873555-8a2b-4df2-92f7-6106d17d25ae WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '2112adda-8896-4b58-9a13-8d18ee8e08d6'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6d69a91-2d80-48da-a780-147a16e3523b 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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.079165s] ... 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-632294e2-f9a2-4ae1-a882-92e1f19d2c93 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": "2024-09-05T08:48:01.327573+00:00", "updated_at": "2024-09-05T08:48:01.330771+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-2381dcd8-c2a0-48c8-8f7b-6fc382eb15f1 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": "2024-09-05T08:48:01.327573+00:00", "updated_at": "2024-09-05T08:48:01.330771+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.143614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-af3db7d8-6a93-4ca6-a7f5-efd6f2c634cb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_conductor_forbidden [0.064139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cf579ee1-5d41-4d05-b123-b333565a898a WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e62357c-f6e3-40c9-a6de-c61cd99af088 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_node.TestPatch.test_patch_deploy_step_forbidden [0.052446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1bf96959-06f2-4d77-a41f-30d593aa70c2 WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-80a2c00e-84a3-4110-a9a0-75f9dfa1b8b6 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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.129116s] ... 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-93b41a41-8992-4736-922f-f0c5e2a2a5d9 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.121205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/03b14ea3-dc09-412b-8df5-b4c6170c2b42 WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-eb8050e6-6f74-4049-953d-c9ffdeace6d2 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin [0.279084s] ... 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-cb7c7b1f-728c-4c32-b03f-a6cdde0c4ef0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.127970s] ... 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-5d6b411b-e857-4fd4-b54b-817752e53a2d X-Openstack-Ironic-Api-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.TestPatch.test_patch_fault_forbidden [0.067395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f77c86c7-6d99-4234-8353-6aad1f6eaffa WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-db36b615-8b55-4df7-8f3b-c315ebef9e58 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_member [0.090187s] ... 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-7acd20d6-5a5b-4506-b270-8bf19cbc2712 X-Openstack-Ironic-Api-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.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.070189s] ... 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-0a103a93-1f5f-4128-b135-a253e74b8d67 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.046596s] ... 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-03205f96-2d48-4a0e-9ca8-938978d98032 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_observer [0.070770s] ... 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-609b2270-0fc7-462c-abfd-2125057fe704 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.372076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-058eca69-3a43-4667-b83b-dc4c9c524f9f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_volume_connector.TestPatch.test_replace_invalid_power_state [0.063653s] ... 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-76581ef3-2913-45f7-9088-e06737df4bc1 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.189986s] ... 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-c5c4e4ec-d526-4a03-87e8-f49500d42e4c 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": "2024-09-05T08:48:01.732912+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin [0.086875s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ee7b1664-20bc-42d7-8a1f-b839c75d04b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.117694s] ... 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-f9faa421-5037-49da-9e0b-fa3ed2fc4d8c 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": "2024-09-05T08:48:01.914595+00:00", "updated_at": "2024-09-05T08:48:01.917432+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.207242s] ... 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-f13fc676-3521-4f91-8d95-c59337263b65 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.158404s] ... 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-300d69e4-f4ff-4f78-b272-203d313bbb10 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": "2024-09-05T08:48:01.906859+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.097245s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94267caf-6498-407a-b261-af199fdd5a9c 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": "2024-09-05T08:48:02.049801+00:00", "updated_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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.124616s] ... 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-ef198195-a10f-478a-9f17-308e79d8061c X-Openstack-Ironic-Api-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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.076615s] ... 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-e7cc9f90-f844-424c-905f-c97372fecb9f 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": "2024-09-05T08:48:02.151667+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.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.108492s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7e0b77c-1c06-4b1b-a5b3-850f0114b9ca 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": "2024-09-05T08:48:02.131851+00:00", "updated_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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.045107s] ... 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-3bd82f56-b734-40a6-97c4-61e7642b0e00 X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_policy_update [0.248012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-030bcfb0-b608-4392-b987-61db1a737588 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "29b1fdbd-bf68-468d-a28d-54302ff2823f", "created_at": "2024-09-05T08:48:02.129082+00:00", "updated_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/29b1fdbd-bf68-468d-a28d-54302ff2823f", "rel": "self"}, {"href": "http://localhost/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/ports", "rel": "self"}, {"href": "http://localhost/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/states", "rel": "self"}, {"href": "http://localhost/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/volume", "rel": "self"}, {"href": "http://localhost/nodes/29b1fdbd-bf68-468d-a28d-54302ff2823f/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.044069s] ... 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-ceb521af-da2b-4b37-bd74-147067b9c1a4 X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_reader [0.067225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8667db72-4855-4ffd-8b9d-a36edd5c5e13 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": "2024-09-05T08:48:02.244305+00:00", "updated_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.TestRBACScopedRequests.test_system_scoped_009_nodes_get_node_other_admin ... SKIPPED: Not implemented yet {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.054444s] ... 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-db1fa5e6-ea32-4ab2-a7bb-bc1d38028de7 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": "2024-09-05T08:48:02.313368+00:00", "updated_at": null, "connector_id": "test-connector-id-999", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member [0.522929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f5f1ed0a-c5b5-47cb-a27d-ad9fd123fdf4 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.133588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd70cb0a-1684-486e-8f59-e26247cd0358 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2941e39d-f4ea-48d6-9b8b-c2e80e66f49c", "created_at": "2024-09-05T08:48:02.360825+00:00", "updated_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/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c", "rel": "self"}, {"href": "http://localhost/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/ports", "rel": "self"}, {"href": "http://localhost/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/states", "rel": "self"}, {"href": "http://localhost/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/volume", "rel": "self"}, {"href": "http://localhost/nodes/2941e39d-f4ea-48d6-9b8b-c2e80e66f49c/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.079627s] ... 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-5802dfef-1081-4e3c-a63c-b41c3a8cf2d0 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": "2024-09-05T08:48:02.389943+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.032212s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.123118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-65aadff9-29dc-4781-b083-5bd624b81576 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": "90e3255c-dcdd-4678-af8d-420915a26927", "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.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer [0.077015s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-49180820-c659-445b-a74a-cf9d3b0063ed X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.046218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/04111696-c4d4-43ec-b1dc-62d7f9b1deba WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-40f0822c-92ea-4a16-8c36-9060378dd3f9 X-Openstack-Ironic-Api-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 04111696-c4d4-43ec-b1dc-62d7f9b1deba could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.107487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751 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-5fae370b-8458-4c42-a3f6-fb6f877a3016 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e10b2f86-c7fc-4976-ba95-658fdf3fe751", "created_at": "2024-09-05T08:48:02.459251+00:00", "updated_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/e10b2f86-c7fc-4976-ba95-658fdf3fe751", "rel": "self"}, {"href": "http://localhost/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/ports", "rel": "self"}, {"href": "http://localhost/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/states", "rel": "self"}, {"href": "http://localhost/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/volume", "rel": "self"}, {"href": "http://localhost/nodes/e10b2f86-c7fc-4976-ba95-658fdf3fe751/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.048772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-ecc02dc6-bb6b-42cf-8c0e-c92069bf238e 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.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.108014s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88a7b24a-a9d6-473f-a26d-e6d2b0bd47c2 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": "ed7d1c3a-8061-480a-908b-69da97581b85", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.039704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_nodes_ports_get_admin [0.114967s] ... 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-602ddf9b-9d97-4cc6-8269-81ce6966ca39 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.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra [0.096647s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb 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-dbab4c5c-7f47-41f3-9563-bfa8ff4a1e89 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "26e7aef9-5862-47e3-ac6d-88246c835beb", "created_at": "2024-09-05T08:48:02.562943+00:00", "updated_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/26e7aef9-5862-47e3-ac6d-88246c835beb", "rel": "self"}, {"href": "http://localhost/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/ports", "rel": "self"}, {"href": "http://localhost/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/states", "rel": "self"}, {"href": "http://localhost/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/volume", "rel": "self"}, {"href": "http://localhost/nodes/26e7aef9-5862-47e3-ac6d-88246c835beb/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.040609s] ... 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-50fd4965-5fa5-49f1-a8d5-395abc310b03 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_get_service_project [0.081805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0b409af-06be-46b4-82cd-a6bbf43bff57 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": "c2634baf-027f-4f46-bbae-77e46fe71904", "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.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_member [0.066753s] ... 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-d33e34c2-aa84-49af-a13d-9ba9f6d50284 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_target.TestDelete.test_delete_volume_target_node_locked [0.057219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-495a0dce-4d40-49ff-821b-c233f16aaa0c X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.096611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2 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-264f96fa-46be-4eb8-8f13-1d29663f8ca1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "cef8fc0c-8c89-44a0-881f-4b788485b4c2", "created_at": "2024-09-05T08:48:02.654526+00:00", "updated_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/cef8fc0c-8c89-44a0-881f-4b788485b4c2", "rel": "self"}, {"href": "http://localhost/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/ports", "rel": "self"}, {"href": "http://localhost/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/states", "rel": "self"}, {"href": "http://localhost/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/volume", "rel": "self"}, {"href": "http://localhost/nodes/cef8fc0c-8c89-44a0-881f-4b788485b4c2/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer [0.084425s] ... 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-fe2cd945-1b56-48e0-858e-e2d388603f04 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.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [0.106673s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-067ba6cc-1bca-4678-88f4-47d0dd7d8d92 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.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.129633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2 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-cf930438-4f45-4fc5-8d6e-0cf008352cf1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2cb0bf9f-8b3f-4436-94b7-d30a667496a2", "created_at": "2024-09-05T08:48:02.759397+00:00", "updated_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/2cb0bf9f-8b3f-4436-94b7-d30a667496a2", "rel": "self"}, {"href": "http://localhost/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/states", "rel": "self"}, {"href": "http://localhost/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/volume", "rel": "self"}, {"href": "http://localhost/nodes/2cb0bf9f-8b3f-4436-94b7-d30a667496a2/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin [0.105232s] ... 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-baacfabc-331c-40e8-8aa9-69b845e4e226 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": "2024-09-05T08:48:02.782762+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.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.085382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a015c752-1b29-47e1-8f04-d67293708f91 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.TestRBACScopedRequests.test_system_scoped_015_nodes_get_other_admin ... SKIPPED: Not implemented yet {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info [0.127172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25 WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13507b6e-bed9-4410-a464-1b6906ea8e19 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f9a8986d-f451-4b2f-893f-e768829a7d25", "created_at": "2024-09-05T08:48:02.922517+00:00", "updated_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/f9a8986d-f451-4b2f-893f-e768829a7d25", "rel": "self"}, {"href": "http://localhost/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/ports", "rel": "self"}, {"href": "http://localhost/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/states", "rel": "self"}, {"href": "http://localhost/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/volume", "rel": "self"}, {"href": "http://localhost/nodes/f9a8986d-f451-4b2f-893f-e768829a7d25/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member [0.114396s] ... 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-20527b0f-6b2d-4cbc-af7b-08e790460d0d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.083648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8682a97-db59-403f-8f63-53200769db02 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": "2024-09-05T08:48:02.946097+00:00", "updated_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": "2024-09-05T08:48:02.947333+00:00", "updated_at": "2024-09-05T08:48:02.953529+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": "51788f8c-e14c-46ba-87b9-eae0ed14affa", "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": "51788f8c-e14c-46ba-87b9-eae0ed14affa", "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": "2024-09-05T08:48:02.975912+00:00", "updated_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.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.271619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-897ec3cb-d192-4c9c-9972-ea201a21a8fc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_policy_update_none [0.091721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19 WITH [] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5323b807-af07-4cd3-b685-4bdfeab1ad64 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c7474d36-4cf6-408a-9041-1ea0a07a6c19", "created_at": "2024-09-05T08:48:03.006928+00:00", "updated_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/c7474d36-4cf6-408a-9041-1ea0a07a6c19", "rel": "self"}, {"href": "http://localhost/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/ports", "rel": "self"}, {"href": "http://localhost/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/states", "rel": "self"}, {"href": "http://localhost/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/volume", "rel": "self"}, {"href": "http://localhost/nodes/c7474d36-4cf6-408a-9041-1ea0a07a6c19/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer [0.105878s] ... 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-409c6572-396b-4e5e-9296-1f18d5eff8db 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": "2024-09-05T08:48:03.020637+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.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.085020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-059a9000-0c4f-4d76-b3d9-f1a2c841fb57 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": "2024-09-05T08:48:03.039963+00:00", "updated_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": "2024-09-05T08:48:03.041191+00:00", "updated_at": "2024-09-05T08:48:03.044813+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": "31e50918-6016-48bc-885a-5e482a2dc143", "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": "31e50918-6016-48bc-885a-5e482a2dc143", "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": "2024-09-05T08:48:03.061890+00:00", "updated_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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.058577s] ... 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-781845ff-8431-42ed-a133-b8e795e5ed77 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.127100s] ... 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-1de1508c-72fa-4b3e-b734-be575fff2b08 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.076429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9db2072-14d7-4cda-b097-2c418cf6b0a4 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": "2024-09-05T08:48:03.118905+00:00", "updated_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": "2024-09-05T08:48:03.121149+00:00", "updated_at": "2024-09-05T08:48:03.124947+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": "36a9ee15-919c-43f0-aca9-a0f832b7915b", "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": "36a9ee15-919c-43f0-aca9-a0f832b7915b", "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": "2024-09-05T08:48:03.141132+00:00", "updated_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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.045672s] ... 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-377bf209-f836-48bf-958d-91c2cf334091 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin [0.108221s] ... 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-116c6107-4c5b-4b17-98ee-814fdae77375 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.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.070259s] ... 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-64fd5321-1ed4-4589-9527-b91c8d8d4b29 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.077172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-114e1598-c543-476e-8c70-bbe84efc261b 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": "2024-09-05T08:48:03.194720+00:00", "updated_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": "2024-09-05T08:48:03.195926+00:00", "updated_at": "2024-09-05T08:48:03.199322+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": "3d0f90d3-6fde-4470-829f-b3b9ea58bd92", "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": "3d0f90d3-6fde-4470-829f-b3b9ea58bd92", "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": "2024-09-05T08:48:03.217268+00:00", "updated_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.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.106438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1787d59b-1ca0-4a0b-a4dc-e264d165d0b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member [0.088624s] ... 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-2ba99bf1-0dd2-41d3-af23-3689ccc4d00f X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_update_drive_console_enabled [0.077540s] ... 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-01daf987-3f72-4da9-b32e-30c2ce46e686 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.077446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2bd6791-ad2e-433e-b37c-cfef7b19f508 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": "2024-09-05T08:48:03.272114+00:00", "updated_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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.048064s] ... 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-dcae8f0f-8690-4de8-8470-2dc7534e67b4 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_observer [0.097189s] ... 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-42369cf5-d9fb-4027-ba5a-171d11095559 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.111403s] ... 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-2d21fce3-0ec3-423f-a2bd-a61db30ed0a6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.081707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-acc9e62a-4506-4196-b3c2-5c5459265152 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": "2024-09-05T08:48:03.355450+00:00", "updated_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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.048566s] ... 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-b1a5b9d3-99d3-4b50-b1b6-a0aafea8f89f 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_detail_get_admin [0.079255s] ... 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-50ae5f10-3994-49fe-80e9-6692a642bb51 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.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.060034s] ... 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-a126b4b8-a503-48bd-b371-0f9c6baecc7a X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.074671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1b0ebdb-d32d-4f13-baea-6b28c1147b60 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": "2024-09-05T08:48:03.434384+00:00", "updated_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.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.134097s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cf3273b3-ca9e-488e-b3bc-4fe010a2a666 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.046655s] ... 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-ebe4fb3f-2946-4e61-a1eb-8f5f4584ee46 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member [0.079108s] ... 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-3c049d16-a52b-4077-ba1c-254c6d38ec5d X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_volume_targets_subresource [0.050517s] ... 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-43867717-0158-4f9e-8270-bfb2fad61e55 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.117544s] ... 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-f4248b40-f23d-4026-80e9-33f5e8cce091 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.043124s] ... 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-369a8f33-dbd0-46f1-a168-d38eb7d63276 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.110855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8f2a8fe4-9707-4dbd-8be1-88cb50fd6f53 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer [0.089657s] ... 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-3063f37d-a078-4659-96a6-8a2752795291 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.TestRBACModelBeforeScopes.test_rbac_legacy_166_volume_get_admin [0.065893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d7989f9-4b0d-40bb-ac54-d993df30834f 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.083615s] ... 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-8db389d4-f858-4466-b997-b9d3392fc487 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": "2024-09-05T08:48:03.639531+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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.112650s] ... 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-dfa23c8e-8e81-40b0-afe6-566b034d7162 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.123388s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2208075d-609a-486d-a024-c42039c3faf6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_member [0.082831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d324e564-bdbc-4d85-af9e-b3ef947fbf97 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.088560s] ... 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-2632793b-18e0-4c31-8cc5-69c7ca00033a 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_node.TestPatch.test_remove_internal_field [0.045238s] ... 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-4de57a73-f9d0-4410-be7d-f035cf6a4630 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.106260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fac33f3f-8ec2-48e5-a4d1-4991a8fa5ae4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_observer [0.084900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7319f890-282f-4409-a9c3-0c1c7b9c3452 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.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.151312s] ... 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-31d85a6e-e2c2-471b-8cec-df85de748df1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.093587s] ... 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-cb6b32dd-c0c8-4a1a-ada7-c934a9fedc3c 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_connectors_get_admin [0.084843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e7b0498-c8c4-47b5-81bd-07ad4a63b39a 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.098059s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-deddb035-0e39-4715-aedd-fe446a940e36 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestPatch.test_remove_non_existent_property_fail [0.048317s] ... 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-3bad3ae6-20b0-4b99-b11c-9eab61103f98 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_member [0.090171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2380fbec-f31d-436c-999c-86d831022f10 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_026_nodes_node_ident_patch_member [0.191258s] ... 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-d9dd2a70-c4e0-48cf-8d84-afa456f13c96 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.117704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-084a9930-6655-455f-92f2-f2acbd22f21b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_node.TestPatch.test_remove_ok [0.100543s] ... 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-f3a4a19c-6700-447c-9e7e-41fd5a34b15e 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": "2024-09-05T08:48:04.016511+00:00", "updated_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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_observer [0.085960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f422325-0dc7-4235-82ab-454f053644d6 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.049948s] ... 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-466a09ef-c1f7-41f6-8a2a-967a434c1734 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_node.TestPatch.test_replace_chassis_id [0.048930s] ... 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-8b6a9427-0fbf-4a4d-821b-f6211d0ea40e 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.118453s] ... 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-b7417a87-f815-4288-b75a-164bd4173291 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.196382s] ... 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-73deaccf-8e32-46f5-afdc-c0afb25a3f7e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.089830s] ... 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-ec12c313-58c2-44db-86d0-f7e9007be4d2 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": "2024-09-05T08:48:04.201662+00:00", "updated_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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_post_admin [0.165485s] ... 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/f1245325-54d6-45d6-843e-d2fa7464e298 Openstack-Request-Id: req-aad4c3c5-1025-4054-a2db-9e63ec226acd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f1245325-54d6-45d6-843e-d2fa7464e298", "created_at": "2024-09-05T08:48:04.274141+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f1245325-54d6-45d6-843e-d2fa7464e298", "rel": "self"}, {"href": "http://localhost/volume/connectors/f1245325-54d6-45d6-843e-d2fa7464e298", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.041738s] ... 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-8e355dc6-86c8-41d7-a267-b4d2b533bc4c 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_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.137451s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b61c3aa5-ab50-4a96-9241-b8e98fb65f00 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_028_nodes_node_ident_patch_service_project [0.112686s] ... 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-8372f10c-7949-4465-8852-6deea83f616f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_member [0.109560s] ... 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-2146e58c-7471-4083-81e0-0a38d0337032 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.068523s] ... 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-5145de23-e12d-4970-952d-d9bb53473eec X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.116916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a8132da5-2bb6-4ecd-9dc6-626b06a37dda X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_observer [0.111503s] ... 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-81ba13a7-6149-4cd9-bf60-c1c6ec8b654d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.076349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-83cc7130-4d78-4b6b-8eab-108e5bf0edce X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.087618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-325af951-7002-4616-b791-6531b787bf62 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": "bb761b8b-c71c-451d-b683-ecb15f241eb7", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.266037s] ... 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-043b863b-5db1-4167-ab60-27f79a10356c 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_volume_connector_id_get_admin [0.075595s] ... 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-18af39d4-0ca9-4c6c-b963-25d5b462d202 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": "2024-09-05T08:48:04.555770+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.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.072407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9eb6c820-2370-4432-9883-b3c8ecd07b51 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.082788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d46ce14-c3ce-4629-b199-020bd9b08ab5 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": "c18bd674-107e-4a70-b770-6133cb21dfbb", "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.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.080233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-97d6856a-2536-4fc7-9422-be9c6b08a818 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.103182s] ... 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-d761272f-167f-411f-98c0-b4abff6ae813 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": "2024-09-05T08:48:04.607772+00:00", "updated_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_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.074518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33e3ff7b-d973-473a-9672-e9c558ee910e 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": "421835fb-9195-45a1-a4a1-b9dcd1c005ad", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_member [0.109151s] ... 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-5dcaf584-bb55-4402-bf02-938c5aa5d4d9 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.072327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1d455b9-cfd3-4645-a8ea-eab8aea58ba3 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": "15b10c81-c68a-4839-9036-8826a9d9ac93", "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.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.090478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-89cd46a9-2ad1-49ba-97e3-c66a892e8681 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.103305s] ... 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-7cd3e538-f24e-43e8-8161-823acb8625d1 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": "2024-09-05T08:48:04.721000+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.068150s] ... 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-cd494cb0-1769-401a-871f-ec1b852cb400 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.081397s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-caf744ab-0881-4f82-8bd9-d01a443dfca2 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": "d1a88ca1-c0a2-4d75-b6a8-fb84399d9a37", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_observer [0.149845s] ... 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-f55091a0-dd44-4f2c-924d-f50c93b1c10c 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": "2024-09-05T08:48:04.785929+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.090774s] ... 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-2cc47b0f-e215-4125-a9ed-696d7568ada7 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.072030s] ... 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-098b924b-170a-4846-86fa-c39835571b5b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.079495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74c5be99-d4fd-40b9-83a8-31b40bccf44c 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": "3f8d8fb6-dbd2-4305-b042-6e88c97f80b8", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.045575s] ... 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-86d3fb7d-2631-448c-857a-66fd5abacf63 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_patch_admin [0.088299s] ... 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-7d412e2f-89b9-4dcc-ad3a-7ef6b6424e09 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.070852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61682ac0-884e-4892-9c6f-cef2cdb82d38 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": "0237a3c0-c4ec-48ba-88b8-387c902d46dc", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_member [0.087558s] ... 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-3b784a24-4351-4727-8355-b49b3557108e X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.090781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3043739c-b3cd-4431-a745-6fef3cfbc62b 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": "f43e944e-b423-4825-a7d0-4b3a29d7cef7", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_observer [0.087839s] ... 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-1dc23d43-f311-4483-bc2b-39576c914774 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.075295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a69c361-523d-4750-98c3-b27ee6d135e9 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_delete_admin [0.072468s] ... 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-35d937ae-eb2e-4edb-b81f-8604defd9983 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.303323s] ... 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-6c6bca17-da6b-49de-a6b9-b304e5639278 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.090057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d90ae0e1-9ec5-422e-8259-ee40fbbd01a0 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": "2024-09-05T08:48:05.201859+00:00", "updated_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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.334335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa80a0f2-e100-48c9-82ba-0e7592dad090 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33ec45f9-e6ca-455f-ada4-2bf39ef9d9da X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-381bc44c-2908-4d90-abe8-9ea461f6ad3b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "alloca tion_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62a4ff1b-4d05-45ca-a8e6-9cca16dcc989 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/management_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e19f0828-0baa-4419-940c-c9d61b12a544 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23919914-9016-400e-bfcc-befbed6b77cf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7f761ce-6e29-4f8e-8ca5-a67a283b1671 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27 ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} PATCH /v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04 WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b199a0fb-c3c4-46ce-9a6a-30e114ca7270 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "27ef777c-6afa-4283-8696-8bc3f6884e04", "created_at": "2024-09-05T08:48:04.972453+00:00", "updated_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/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "self"}, {"href": "http://localhost/nodes/27ef777c-6afa-4283-8696-8bc3f6884e04/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member [0.081879s] ... 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-25ec7e3c-01f2-47f3-8512-48b9b18e5ebb X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.076042s] ... 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-15b6abc9-2eeb-4b7e-8029-b16c9001889d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.048699s] ... 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-6dddb4e6-1bb6-42ac-82e0-17b9cb106d90 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.test_acl.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.075491s] ... 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-7b9e7b75-7528-47d1-a151-1a30550ed739 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestPatch.test_reset_interfaces_without_driver [0.045813s] ... 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-4f8edfac-c41a-4336-8b3b-6e030d01a7e3 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer [0.087019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3936f7f6-ee02-459c-a8cb-87157fc46783 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.084666s] ... 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-95c6d7b9-da2b-4155-9741-02d6e9c54df4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.084031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15c007e7-efbe-4c9a-8cf1-068a0f78dc81 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": "2024-09-05T08:48:05.375267+00:00", "updated_at": "2024-09-05T08:48:05.382929+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": "96dc7bb3-74eb-4dc9-b8f1-cd1914058338", "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": "96dc7bb3-74eb-4dc9-b8f1-cd1914058338", "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.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.073565s] ... 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-ea4632cd-4dc3-4c23-94cc-cad04cb859e4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_targets_get_admin [0.083075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f7a7e5d-e4e0-4d88-b311-5f9469e3a8b5 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.129887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1 WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69fdf48b-3a46-4506-98c5-3a492d9c16dd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e61c9c7e-bb62-41f8-9d24-2c081d7fcab1", "created_at": "2024-09-05T08:48:05.426881+00:00", "updated_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/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1", "rel": "self"}, {"href": "http://localhost/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/ports", "rel": "self"}, {"href": "http://localhost/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/states", "rel": "self"}, {"href": "http://localhost/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/volume", "rel": "self"}, {"href": "http://localhost/nodes/e61c9c7e-bb62-41f8-9d24-2c081d7fcab1/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.075032s] ... 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-05db68ab-d4d5-4515-b1f6-a0a87aba4223 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_040_nodes_maintenance_put_member [0.067712s] ... 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-185aed9b-ebc1-4947-977a-09eb8af2b5bc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_member [0.094091s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9aa6128-a6ff-4ca1-b38d-c20760b82c21 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_third_party_admin_cant_get_node [0.081181s] ... 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-4d134259-2102-44c2-b869-311bb03cfbc5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestPatch.test_reset_storage_interface [0.087801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/71363efc-91d4-4207-b540-ae8750455862 WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9626c1a9-db73-40eb-b32a-3ecb02e1b35b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "71363efc-91d4-4207-b540-ae8750455862", "created_at": "2024-09-05T08:48:05.524259+00:00", "updated_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/71363efc-91d4-4207-b540-ae8750455862", "rel": "self"}, {"href": "http://localhost/nodes/71363efc-91d4-4207-b540-ae8750455862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/71363efc-91d4-4207-b540-ae8750455862/ports", "rel": "self"}, {"href": "http://localhost/nodes/71363efc-91d4-4207-b540-ae8750455862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/71363efc-91d4-4207-b540-ae8750455862/states", "rel": "self"}, {"href": "http://localhost/nodes/71363efc-91d4-4207-b540-ae8750455862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/71363efc-91d4-4207-b540-ae8750455862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/71363efc-91d4-4207-b540-ae8750455862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/71363efc-91d4-4207-b540-ae8750455862/volume", "rel": "self"}, {"href": "http://localhost/nodes/71363efc-91d4-4207-b540-ae8750455862/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.078328s] ... 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-3907d389-c0f7-40dc-936c-bbe5f6cf75ea X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_observer [0.077534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f96357f1-4bc9-45e5-a33f-6afc7106fe9c 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.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.078031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba5e73ee-cbe6-4744-a0b7-35e5229241c4 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": "2024-09-05T08:48:05.603451+00:00", "updated_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.TestRBACScopedRequests.test_system_scoped_042_nodes_maintenance_delete_admin [0.067723s] ... 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-e2210fd2-7f52-457f-8398-2d2bf51b54e9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.092143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ba14d6f7-c72a-4d58-9b6e-0b52b1c07c4e WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b46e3488-89ac-4cef-a117-7a7957858331 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ba14d6f7-c72a-4d58-9b6e-0b52b1c07c4e", "created_at": "2024-09-05T08:48:05.612370+00:00", "updated_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/ba14d6f7-c72a-4d58-9b6e-0b52b1c07c4e", "rel": "self"}, {"href": "http://localhost/nodes/ba14d6f7-c72a-4d58-9b6e-0b52b1c07c4e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ba14d6f7-c72a-4d58-9b6e-0b52b1c07c4e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ba14d6f7-c72a-4d58-9b6e-0b52b1c07c4e/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_post_admin [0.090587s] ... 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/98308598-301c-47bf-acac-95e5b0aef7a5 Openstack-Request-Id: req-305d4140-7dc4-4f5b-a0d9-42d326777bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "98308598-301c-47bf-acac-95e5b0aef7a5", "created_at": "2024-09-05T08:48:05.708676+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/98308598-301c-47bf-acac-95e5b0aef7a5", "rel": "self"}, {"href": "http://localhost/volume/targets/98308598-301c-47bf-acac-95e5b0aef7a5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.067286s] ... 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-066a1a10-8d2a-460b-8d3e-fbf868a8ef42 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.090396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f7bf22c-9f15-4cac-9c5e-76bd4a48dc55 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": "2024-09-05T08:48:05.703037+00:00", "updated_at": "2024-09-05T08:48:05.710897+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": "ce2edd17-c953-411e-836b-f613ab95b27c", "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": "ce2edd17-c953-411e-836b-f613ab95b27c", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.096162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/eb2ab34f-f035-40c5-9767-8c837c4aec2f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f38f1159-d158-44cc-93bf-3ba876226a3f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "eb2ab34f-f035-40c5-9767-8c837c4aec2f", "created_at": "2024-09-05T08:48:05.713695+00:00", "updated_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/eb2ab34f-f035-40c5-9767-8c837c4aec2f", "rel": "self"}, {"href": "http://localhost/nodes/eb2ab34f-f035-40c5-9767-8c837c4aec2f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/eb2ab34f-f035-40c5-9767-8c837c4aec2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/eb2ab34f-f035-40c5-9767-8c837c4aec2f/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_maintenance_delete_reader [0.073795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-145c1e84-e054-4c79-bec6-af5e89f3b386 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.086006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e329ae9-18a7-40cb-b1d9-8d41feda6e33 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": "2024-09-05T08:48:05.770941+00:00", "updated_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": "2024-09-05T08:48:05.782361+00:00", "updated_at": "2024-09-05T08:48:05.790257+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": "fd28b68e-5a0a-4970-b241-be20a2601acb", "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": "fd28b68e-5a0a-4970-b241-be20a2601acb", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.089999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7 WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dda4f548-af1e-448a-a136-3fc40e729a4a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "b83421f0-3e3d-478e-8e70-7a6e2ec086b7", "created_at": "2024-09-05T08:48:05.806940+00:00", "updated_at": null, "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/b83421f0-3e3d-478e-8e70-7a6e2ec086b7", "rel": "self"}, {"href": "http://localhost/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/ports", "rel": "self"}, {"href": "http://localhost/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/states", "rel": "self"}, {"href": "http://localhost/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/volume", "rel": "self"}, {"href": "http://localhost/nodes/b83421f0-3e3d-478e-8e70-7a6e2ec086b7/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.075170s] ... 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-60db1351-4ca9-4131-9e12-db86dbb25fc7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.060078s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cce5d8cd-201f-4eb1-9cc3-eb824b2f8863 WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-efd150c3-9184-4a93-90d9-adb7a67635d0 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.110177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a77a22a-f65d-4e05-a0ee-d82bf68eff15 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": "2024-09-05T08:48:05.892642+00:00", "updated_at": "2024-09-05T08:48:05.903541+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": "9d1e4c82-6462-4af1-8c6e-cbdee416bd5e", "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": "9d1e4c82-6462-4af1-8c6e-cbdee416bd5e", "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.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.075346s] ... 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-340f3463-6947-4733-b377-ac4ed7878ed2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false [0.063267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/87581877-df09-4389-b838-26739241fd39 WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dd5f7d35-63b8-45a9-a395-76bf7db07e6d 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.071872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3395b58a-c345-41cd-b564-a4a644e0d648 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_member [0.300831s] ... 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-98598fed-3519-41a0-a468-59e9e683254a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.051574s] ... 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-f2224269-37a4-460f-82b2-5a144431a0c7 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.104288s] ... 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-8757e5fa-b193-4e9e-b3a6-e5c3e0654245 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_observer [0.080692s] ... 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-d55db7e2-3245-4f80-9bf6-b0138f4985e8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_admin_can_patch_node_extra [0.109863s] ... 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-f8cbafa7-71b2-4dde-97a2-5e4143a4c03a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.069217s] ... 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-8f2da8c7-4035-48a1-8db2-1e292d2dd2f9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.113496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d1726d7c-123b-425b-b554-934455cbc084 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a806448-6bfc-4a83-ba47-cd8b74449fc6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "d1726d7c-123b-425b-b554-934455cbc084", "created_at": "2024-09-05T08:48:06.077431+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/d1726d7c-123b-425b-b554-934455cbc084", "rel": "self"}, {"href": "http://localhost/nodes/d1726d7c-123b-425b-b554-934455cbc084", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d1726d7c-123b-425b-b554-934455cbc084/ports", "rel": "self"}, {"href": "http://localhost/nodes/d1726d7c-123b-425b-b554-934455cbc084/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d1726d7c-123b-425b-b554-934455cbc084/states", "rel": "self"}, {"href": "http://localhost/nodes/d1726d7c-123b-425b-b554-934455cbc084/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d1726d7c-123b-425b-b554-934455cbc084/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d1726d7c-123b-425b-b554-934455cbc084/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d1726d7c-123b-425b-b554-934455cbc084/volume", "rel": "self"}, {"href": "http://localhost/nodes/d1726d7c-123b-425b-b554-934455cbc084/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_volume_target_id_get_admin [0.079136s] ... 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-7aeaf868-b182-4525-a889-f88b48210e94 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": "2024-09-05T08:48:06.142845+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.052421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cf4f7b28-964d-406f-ad9d-d4f24b544b31 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d235806b-0260-4c8e-9204-fbf619d2c223 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.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.084890s] ... 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-4d691c63-2415-4dc8-993a-f526f1cdc04d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.106343s] ... 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-6e217508-a89a-489c-9376-8891990592e1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_member [0.074263s] ... 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-e809132e-649c-42a6-bcad-f07708b64029 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_description [0.096809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03 WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b7302ea-1afb-4c27-91bf-3f42fa818cfd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03", "created_at": "2024-09-05T08:48:06.246381+00:00", "updated_at": null, "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/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03", "rel": "self"}, {"href": "http://localhost/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/ports", "rel": "self"}, {"href": "http://localhost/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/states", "rel": "self"}, {"href": "http://localhost/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/volume", "rel": "self"}, {"href": "http://localhost/nodes/89fdd25e-6fe3-4f46-8b33-cf75d9bc5c03/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.089486s] ... 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-de47f514-a2e2-4a34-98e0-6ca6c87fb4d8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_observer [0.089441s] ... 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-0e3c7b5a-d384-498b-8899-73d0f5bf66c8 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": "2024-09-05T08:48:06.303306+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"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.048020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8f979203-be84-4349-804a-b2d34f030935 WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812 3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2c9f75f1-84da-4ffc-ab51-d02369dc3c8a 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_owner_member_can_patch_node_extra [0.132829s] ... 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-48d0e1d9-0ad6-43d7-b05c-fcdfc5c7ea8f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_051_nodes_management_boot_device_supported_get_admin [0.088072s] ... 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-f6104ecb-8a4f-4340-a969-f7bc1c79fe0b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.084704s] ... 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-6234cf02-2bce-4eb1-8b41-a49249cc4e6f 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_patch_admin [0.108383s] ... 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-42f9de96-379e-4cdc-96e3-b196a350cf12 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_052_nodes_management_boot_device_supported_get_member [0.086575s] ... 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-21483dc0-41b9-48f8-ab5d-ddf211e80a8f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.092338s] ... 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-15501b5f-7e28-4be7-a403-7b2c87ae61ba 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_member [0.145053s] ... 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-2cb439b0-4103-4d90-bcc1-f179eea6600b X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.284707s] ... 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-f69151e2-bdf3-4d5a-b852-41c9f5606f66 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.179412s] ... 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-6b77833e-8350-4280-9032-6a9bf3354c39 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer [0.085422s] ... 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-7b4ad9b3-6bc2-4ec9-bc1c-6a845e9da990 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_admin_can_patch_node_extra [0.106136s] ... 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-cf7b8514-9534-4f1f-a8d9-c35e2dd97f13 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.110116s] ... 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-d55ee114-2f9b-417f-a4d4-b307c64464a1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_delete_admin [0.098766s] ... 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-b796c2e1-8466-4496-9001-8ba16cc48fc3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.118255s] ... 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-7a43453a-208c-49a4-a996-1e5b8c324abd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_member [0.107112s] ... 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-4515ea46-9049-4d19-bc42-eb76a9311972 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.151079s] ... 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-9b219c40-6e0d-45d2-9151-54d4279e2ebb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_lessee_member_can_patch_node_extra [0.119721s] ... 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-376489d9-fbdc-4923-9614-2041ce835ac1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.475515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/86e6bafa-09ed-48a0-8359-7700d21c9e68 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a74cb354-aa57-4036-b0a6-a1715515c6f4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "86e6bafa-09ed-48a0-8359-7700d21c9e68", "created_at": "2024-09-05T08:48:06.561983+00:00", "updated_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/86e6bafa-09ed-48a0-8359-7700d21c9e68", "rel": "self"}, {"href": "http://localhost/nodes/86e6bafa-09ed-48a0-8359-7700d21c9e68", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/86e6bafa-09ed-48a0-8359-7700d21c9e68/ports", "rel": "self"}, {"href": "http://localhost/nodes/86e6bafa-09ed-48a0-8359-7700d21c9e68/ports", "rel": "bookmark"}]} PATCH /v1/nodes/fac29637-3077-47ba-8102-15162f19c176 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c393959e-9657-4c5b-8567-1c1fb968945c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "fac29637-3077-47ba-8102-15162f19c176", "created_at": "2024-09-05T08:48:06.609837+00:00", "updated_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/fac29637-3077-47ba-8102-15162f19c176", "rel": "self"}, {"href": "http://localhost/nodes/fac29637-3077-47ba-8102-15162f19c176", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fac29637-3077-47ba-8102-15162f19c176/ports", "rel": "self"}, {"href": "http://localhost/nodes/fac29637-3077-47ba-8102-15162f19c176/ports", "rel": "bookmark"}]} PATCH /v1/nodes/ce6e92ae-088e-4420-a211-111890a4d6d5 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d96edfa3-26dc-4f81-b922-d60bd836a106 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ce6e92ae-088e-4420-a211-111890a4d6d5", "created_at": "2024-09-05T08:48:06.647950+00:00", "updated_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/ce6e92ae-088e-4420-a211-111890a4d6d5", "rel": "self"}, {"href": "http://localhost/nodes/ce6e92ae-088e-4420-a211-111890a4d6d5", "rel": "bookmark"} ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ce6e92ae-088e-4420-a211-111890a4d6d5/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce6e92ae-088e-4420-a211-111890a4d6d5/ports", "rel": "bookmark"}]} PATCH /v1/nodes/918c239f-9c5e-436d-b614-f788781ddb6d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9a3110f-1945-4a09-843e-545eb3f2f904 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "918c239f-9c5e-436d-b614-f788781ddb6d", "created_at": "2024-09-05T08:48:06.676722+00:00", "updated_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/918c239f-9c5e-436d-b614-f788781ddb6d", "rel": "self"}, {"href": "http://localhost/nodes/918c239f-9c5e-436d-b614-f788781ddb6d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/918c239f-9c5e-436d-b614-f788781ddb6d/ports", "rel": "self"}, {"href": "http://localhost/nodes/918c239f-9c5e-436d-b614-f788781ddb6d/ports", "rel": "bookmark"}]} PATCH /v1/nodes/b76b0a05-e632-471b-8026-ce7634aa444e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-980c02c7-6a05-4ece-b400-68424752ef2d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b76b0a05-e632-471b-8026-ce7634aa444e", "created_at": "2024-09-05T08:48:06.705077+00:00", "updated_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/b76b0a05-e632-471b-8026-ce7634aa444e", "rel": "self"}, {"href": "http://localhost/nodes/b76b0a05-e632-471b-8026-ce7634aa444e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b76b0a05-e632-471b-8026-ce7634aa444e/ports", "rel": "self"}, {"href": "http://localhost/nodes/b76b0a05-e632-471b-8026-ce7634aa444e/ports", "rel": "bookmark"}]} PATCH /v1/nodes/198c2a88-1e6b-4c59-a6be-97f4eb89a7bb WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b395cf37-aa2d-408d-93ff-e66010a90b95 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "198c2a88-1e6b-4c59-a6be-97f4eb89a7bb", "created_at": "2024-09-05T08:48:06.741065+00:00", "updated_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/198c2a88-1e6b-4c59-a6be-97f4eb89a7bb", "rel": "self"}, {"href": "http://localhost/nodes/198c2a88-1e6b-4c59-a6be-97f4eb89a7bb", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/198c2a88-1e6b-4c59-a6be-97f4eb89a7bb/ports", "rel": "self"}, {"href": "http://localhost/nodes/198c2a88-1e6b-4c59-a6be-97f4eb89a7bb/ports", "rel": "bookmark"}]} PATCH /v1/nodes/5f6560df-caf0-4eba-ad46-9a1f5d4d2ef4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ce8b29e-8b5a-4ebb-b093-7542bcd688e1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5f6560df-caf0-4eba-ad46-9a1f5d4d2ef4", "created_at": "2024-09-05T08:48:06.779030+00:00", "updated_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/5f6560df-caf0-4eba-ad46-9a1f5d4d2ef4", "rel": "self"}, {"href": "http://localhost/nodes/5f6560df-caf0-4eba-ad46-9a1f5d4d2ef4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5f6560df-caf0-4eba-ad46-9a1f5d4d2ef4/ports", "rel": "self"}, {"href": "http://localhost/nodes/5f6560df-caf0-4eba-ad46-9a1f5d4d2ef4/ports", "rel": "bookmark"}]} PATCH /v1/nodes/d34cf241-ea32-4f86-bcfd-afa9f9ddc0c4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-989bdef7-c464-4227-99e2-d7f160402b6a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d34cf241-ea32-4f86-bcfd-afa9f9ddc0c4", "created_at": "2024-09-05T08:48:06.809557+00:00", "updated_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/d34cf241-ea32-4f86-bcfd-afa9f9ddc0c4", "rel": "self"}, {"href": "http://localhost/nodes/d34cf241-ea32-4f86-bcfd-afa9f9ddc0c4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d34cf241-ea32-4f86-bcfd-afa9f9ddc0c4/ports", "rel": "self"}, {"href": "http://localhost/nodes/d34cf241-ea32-4f86-bcfd-afa9f9ddc0c4/ports", "rel": "bookmark"}]} PATCH /v1/nodes/6dbb643f-e6a3-4149-a525-048999c00a9e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f38a25f9-111c-48a9-aa11-de0083f5cd7e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6dbb643f-e6a3-4149-a525-048999c00a9e", "created_at": "2024-09-05T08:48:06.836880+00:00", "updated_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/6dbb643f-e6a3-4149-a525-048999c00a9e", "rel": "self"}, {"href": "http://localhost/nodes/6dbb643f-e6a3-4149-a525-048999c00a9e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6dbb643f-e6a3-4149-a525-048999c00a9e/ports", "rel": "self"}, {"href": "http://localhost/nodes/6dbb643f-e6a3-4149-a525-048999c00a9e/ports", "rel": "bookmark"}]} PATCH /v1/nodes/ac2076ec-2eb8-464f-b70a-db4f51cee94b WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a189ca58-10ea-45d8-84c5-6994632b3eae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ac2076ec-2eb8-464f-b70a-db4f51cee94b", "created_at": "2024-09-05T08:48:06.865740+00:00", "updated_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/ac2076ec-2eb8-464f-b70a-db4f51cee94b", "rel": "self"}, {"href": "http://localhost/nodes/ac2076ec-2eb8-464f-b70a-db4f51cee94b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ac2076ec-2eb8-464f-b70a-db4f51cee94b/ports", "rel": "self"}, {"href": "http://localhost/nodes/ac2076ec-2eb8-464f-b70a-db4f51cee94b/ports", "rel": "bookmark"}]} PATCH /v1/nodes/2a5806bc-a2f2-4879-a481-27076040ddf2 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f73d7da-829e-4e2a-928e-46a315b105c7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2a5806bc-a2f2-4879-a481-27076040ddf2", "created_at": "2024-09-05T08:48:06.893230+00:00", "updated_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/2a5806bc-a2f2-4879-a481-27076040ddf2", "rel": "self"}, {"href": "http://localhost/nodes/2a5806bc-a2f2-4879-a481-27076040ddf2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2a5806bc-a2f2-4879-a481-27076040ddf2/ports", "rel": "self"}, {"href": "http://localhost/nodes/2a5806bc-a2f2-4879-a481-27076040ddf2/ports", "rel": "bookmark"}]} PATCH /v1/nodes/81f6d059-3556-451c-93a3-89ee204acd15 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d4ff6fb-2f93-46b6-b6f8-3c5a07611dbe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "81f6d059-3556-451c-93a3-89ee204acd15", "created_at": "2024-09-05T08:48:06.929369+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/81f6d059-3556-451c-93a3-89ee204acd15", "rel": "self"}, {"href": "http://localhost/nodes/81f6d059-3556-451c-93a3-89ee204acd15", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/81f6d059-3556-451c-93a3-89ee204acd15/ports", "rel": "self"}, {"href": "http://localhost/nodes/81f6d059-3556-451c-93a3-89ee204acd15/ports", "rel": "bookmark"}]} PATCH /v1/nodes/f13c33d0-829d-4905-a6a7-13260363c4bd WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e2950cd-c208-4fe0-ab96-d0b5a596ac71 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f13c33d0-829d-4905-a6a7-13260363c4bd", "created_at": "2024-09-05T08:48:06.968087+00:00", "updated_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/f13c33d0-829d-4905-a6a7-13260363c4bd", "rel": "self"}, {"href": "http://localhost/nodes/f13c33d0-829d-4905-a6a7-13260363c4bd", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f13c33d0-829d-4905-a6a7-13260363c4bd/ports", "rel": "self"}, {"href": "http://localhost/nodes/f13c33d0-829d-4905-a6a7-13260363c4bd/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_observer [0.128615s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-da0b3dc5-8bab-48de-babb-324afd63b1f5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_lessee_reader_cannot_patch_node_extra [0.081763s] ... 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-e2fc1466-b1b7-44f4-bbbd-9f7c5b5a4ec4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.082465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1f195364-e2ee-470b-a560-daedda3bf484 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd4ec7c1-d9db-4f2e-9111-e46f3574a548 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1f195364-e2ee-470b-a560-daedda3bf484", "created_at": "2024-09-05T08:48:07.035494+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/1f195364-e2ee-470b-a560-daedda3bf484", "rel": "self"}, {"href": "http://localhost/nodes/1f195364-e2ee-470b-a560-daedda3bf484", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1f195364-e2ee-470b-a560-daedda3bf484/ports", "rel": "self"}, {"href": "http://localhost/nodes/1f195364-e2ee-470b-a560-daedda3bf484/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1f195364-e2ee-470b-a560-daedda3bf484/states", "rel": "self"}, {"href": "http://localhost/nodes/1f195364-e2ee-470b-a560-daedda3bf484/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1f195364-e2ee-470b-a560-daedda3bf484/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1f195364-e2ee-470b-a560-daedda3bf484/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1f195364-e2ee-470b-a560-daedda3bf484/volume", "rel": "self"}, {"href": "http://localhost/nodes/1f195364-e2ee-470b-a560-daedda3bf484/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.150059s] ... 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-8e310fc3-ff98-4b51-95b8-a516457e394c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_nodes_volume_get_admin [0.078500s] ... 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-505b0e53-b1cd-4328-bf3a-ca5be898d57b 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.067267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d1d4dc1e-9630-4b9f-ab97-9b59f6eb66f7 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-cdb917a7-f5b1-47e2-a17c-c7b205a8a9bb 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 \\\"d1d4dc1e-9630-4b9f-ab97-9b59f6eb66f7\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.086596s] ... 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-0972fb25-e28c-4660-b20c-247ab185570c X-Openstack-Ironic-Api-Maximum-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.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_member [0.066860s] ... 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-dbb2b116-4f0d-43e6-912d-e50a3acebecb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.132232s] ... 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-a2e72b2c-9c48-4ef3-bb36-8e4de6ddbdd9 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.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_observer [0.065817s] ... 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-a88452dd-2ad9-4e94-a3a6-666c1e431a41 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.115365s] ... 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-f4fb38e5-8877-4648-8334-fa3a00538f9a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_058_nodes_states_get_member [0.079964s] ... 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-ce870a60-197c-4cf4-8dcf-1a5ee4b78ea4 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.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_connectors_get_admin [0.093604s] ... 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-45092ab1-6e91-44d7-b62b-f2aeb1410425 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.TestRBACScopedRequests.test_system_scoped_059_nodes_states_get_reader [0.082839s] ... 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-c1fb2ab1-f4a5-45dc-a254-3bffde98e5c0 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.130253s] ... 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-8f4f8070-0c56-4429-bf68-34d223d4b71f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_member [0.089861s] ... 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-62872022-359e-40d5-9423-e0f126615bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node.TestPatch.test_update_interface_fields [0.297613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a78b88f5-caab-40b3-8040-2e5f07c8ccc0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8cac792-b97c-4c3f-abe5-2cc7c74e0bf0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93cd4566-9003-42d9-ad87-361a5267e8ef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel" : "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-685996f3-e69e-4a71-91bc-721804aae93a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49863cd1-2f3b-4d78-b2e9-be491e752de8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e66fd32b-8eaf-4cca-8040-8664d58a6b56 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-106ddd02-c035-447a-bfcc-4476584c51eb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/node s/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} PATCH /v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b3b810c-9be4-440f-a078-5649db0b41b1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "125a2826-8dc4-4f7a-9a51-136fb2ad8021", "created_at": "2024-09-05T08:48:07.190622+00:00", "updated_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/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "self"}, {"href": "http://localhost/nodes/125a2826-8dc4-4f7a-9a51-136fb2ad8021/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_power_put_admin [0.072990s] ... 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-c0092db1-394b-41d7-a638-e2bb44d115a6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_observer [0.090843s] ... 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-26ace277-4571-423c-8c88-082adcd6696f 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.080906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c442c1d1-f566-4ecb-958a-3f56bdc05d4a 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/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4677e87d-495d-49ad-b5b6-849d023a2672 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/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5013ecf1-b3e0-43b9-94ac-dbcd1821b294 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/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f5c0596f-5ef0-4657-80e5-a9fa2bccab9d 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/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-21e5ea6a-b566-4873-b942-3b9e116b9d81 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/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c061cdbf-ff28-4570-912c-338cb9d1010a 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/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-124a98d9-fdd5-44d4-92b5-04a94db8fefb 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/d373ddb9-c52c-465b-be94-9ff5db9e5653 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9c563733-053a-44a7-a721-a84e4f69e225 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.TestRBACScopedRequests.test_system_scoped_061_nodes_states_power_put_member [0.077003s] ... 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-a3a1c61b-dda2-4d19-aa1c-a4846f5e006a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.135903s] ... 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-9d491d80-4c79-4c0e-9178-c3d19c68a79c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_targets_get_admin [0.087241s] ... 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-22b25625-20ed-4066-8e41-96832eb9c2ea 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.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.080581s] ... 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-6c067ed7-4a99-4945-8a76-4e3fa376f20b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_lessee [0.103639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/37d003e9-e480-474f-9323-ca5fe6bac296 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f162c4e-e37f-464d-bd42-6167443cea99 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "37d003e9-e480-474f-9323-ca5fe6bac296", "created_at": "2024-09-05T08:48:07.573460+00:00", "updated_at": null, "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/37d003e9-e480-474f-9323-ca5fe6bac296", "rel": "self"}, {"href": "http://localhost/nodes/37d003e9-e480-474f-9323-ca5fe6bac296", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/ports", "rel": "self"}, {"href": "http://localhost/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/states", "rel": "self"}, {"href": "http://localhost/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/volume", "rel": "self"}, {"href": "http://localhost/nodes/37d003e9-e480-474f-9323-ca5fe6bac296/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.115405s] ... 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-7c96a87c-ef48-49e0-9d42-1738a7414199 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_lessee_old_api [0.047221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/89a4593d-79e7-4f58-8057-7345ee827e40 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-860cb502-ac4a-41c3-9fcc-1532134b0af8 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member [0.080874s] ... 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-e467828f-d33e-4c45-8546-f935013a9963 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_063_nodes_states_boot_mode_put_admin [0.072751s] ... 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-67a565d3-6cd9-4016-8440-1689dbb1daaf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.109584s] ... 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-4c38e6df-ab40-4ed2-8988-6ebcc0b3494d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_064_nodes_states_boot_mode_put_member [0.073693s] ... 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-e1c31763-0284-48b5-b7d2-5d1661757f11 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_observer [0.118318s] ... 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-89068960-0d50-4e5f-bb58-f8bd3c40e2fa 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data [0.129830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812 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-42e52ed4-3161-4d86-8b91-f8b227942576 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "214bb4b4-a0cf-4227-b6a3-2e303c41c812", "created_at": "2024-09-05T08:48:07.736364+00:00", "updated_at": null, "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/214bb4b4-a0cf-4227-b6a3-2e303c41c812", "rel": "self"}, {"href": "http://localhost/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812/ports", "rel": "self"}, {"href": "http://localhost/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/214bb4b4-a0cf-4227-b6a3 -2e303c41c812/states", "rel": "self"}, {"href": "http://localhost/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812/volume", "rel": "self"}, {"href": "http://localhost/nodes/214bb4b4-a0cf-4227-b6a3-2e303c41c812/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.070493s] ... 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-e79f3115-736b-4a99-a89b-085478988f71 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_lessee [0.086400s] ... 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-0d7c4196-a4b1-439c-ba98-5b2e2d06871e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin [0.073962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c953ae7a-d80d-4dea-8deb-b0b77519bc65 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"drivers": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom [0.072477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddf3b813-34e2-432a-a2eb-afd674a01fb8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "67d642e8-2e6d-47d6-88a6-30ac2f67116d", "created_at": "2024-09-05T08:48:07.856420+00:00", "updated_at": null, "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/67d642e8-2e6d-47d6-88a6-30ac2f67116d", "rel": "self"}, {"href": "http://localhost/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/ports", "rel": "self"}, {"href": "http://localhost/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/states", "rel": "self"}, {"href": "http://localhost/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/volume", "rel": "self"}, {"href": "http://localhost/nodes/67d642e8-2e6d-47d6-88a6-30ac2f67116d/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_secure_boot_put_admin [0.080663s] ... 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-228ebc34-8e7a-4a8c-b149-c53ebd7636e3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_network_data_old_api [0.047850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8af1a615-0e44-446c-bcb8-ff2eab6ff78b 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-23be3f9a-e06f-4d31-aa42-241c41324660 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_lessee_admin_cannot_change_owner [0.077849s] ... 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-d582c326-e892-435d-a8b3-7b4da6916188 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_member [0.074088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fb9dcd12-a0a1-4e1f-a40e-27f432cfbfbd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.065166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f8671648-5c1f-4a9f-b33d-413c2141dfed WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-99f09a0a-ad9d-4dbe-8bf9-c54b167ba7bf 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.078235s] ... 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-aff589d9-43bb-4b32-8b63-c123e3e448d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_observer [0.066429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-591ba685-55f5-41fb-a5f1-4145eae84bd2 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.105260s] ... 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-3c17406a-f2c3-47ad-87e7-7e8da268ed4d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.077074s] ... 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-22b8659a-107b-41aa-aa95-43bd9cfd0faa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_network_interface [0.091163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07de2d54-fff4-4132-a50f-26bea6aab2de X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c5bf91b7-d674-4a16-b25b-c703b7ee989a", "created_at": "2024-09-05T08:48:08.042970+00:00", "updated_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/c5bf91b7-d674-4a16-b25b-c703b7ee989a", "rel": "self"}, {"href": "http://localhost/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/ports", "rel": "self"}, {"href": "http://localhost/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/states", "rel": "self"}, {"href": "http://localhost/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/volume", "rel": "self"}, {"href": "http://localhost/nodes/c5bf91b7-d674-4a16-b25b-c703b7ee989a/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_driver_name_get_admin [0.070531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d74b6eb4-356f-4858-a63a-7a66edf37bb6 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.044909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c028627f-f63f-43ca-91b3-2c4e905f44dc WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5da4acce-03fc-4c2d-92ff-ca2e89b21eaf 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.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.082941s] ... 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-201dbdd3-2f9d-496f-9722-1f5f52a575af X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member [0.092277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-77c95c9e-9b08-470e-8daa-47b4e4fee4be X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.156579s] ... 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-dfb06cd2-e5bf-4e81-bf81-dc31dd623c0f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_ok [0.084509s] ... 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-1d144a05-5d78-4717-a540-10aa0f8e3362 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": "2024-09-05T08:48:08.161253+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"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_observer [0.066090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2e0fcde-39ca-445d-ae9c-dc31ae048c21 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.102823s] ... 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-89dbac96-de64-4b4e-bd49-3c20f27017f2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.088711s] ... 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-80c60ee3-b843-4e63-99de-b5f5511b55c2 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": "2024-09-05T08:48:08.244402+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.137386s] ... 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-50cc1d78-b0c7-4514-99ae-e8c01e6c7fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_properties_get_admin [0.088145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-13bf935b-9ce5-43b4-b5cc-feed89adb34f X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_071_nodes_states_provision_put_reader [0.078847s] ... 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-1412ab14-2122-40ad-8fd9-63994403ec56 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.084187s] ... 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-56e18a26-bbac-4bfd-9227-d46d8a43fc7c 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": "2024-09-05T08:48:08.334426+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_member [0.073411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-372ef30b-8747-4fdd-968b-96e14fc32e02 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.087238s] ... 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-8b1340e3-f55b-46cc-b093-cbe4cb572069 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_observer [0.081266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-df013b13-023c-46fd-813c-ed47216a1043 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.082331s] ... 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-baa8e747-d3c8-4405-a9d4-e28a5622f3d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin [0.072649s] ... 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-be43180c-ac7b-412d-a21d-7f8e57bd6159 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_072_nodes_states_provision_put_service [0.280611s] ... 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-74edd703-ed7e-43da-8723-caeb1460518b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member [0.067022s] ... 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-ccc05d78-3abd-434f-b158-8075b73881bb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.134100s] ... 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-c04d31a6-d97d-4027-9918-f1ceb2055676 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_owner [0.266665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f156cdad-addd-4322-8dd7-a0bfaeff71b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "8e0f9ebd-3e5f-4115-81b5-1a49f069eb18", "created_at": "2024-09-05T08:48:08.616118+00:00", "updated_at": null, "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/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18", "rel": "self"}, {"href": "http://localhost/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/ports", "rel": "self"}, {"href": "http://localhost/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/states", "rel": "self"}, {"href": "http://localhost/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/volume", "rel": "self"}, {"href": "http://localhost/nodes/8e0f9ebd-3e5f-4115-81b5-1a49f069eb18/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.077450s] ... 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-9574a627-a8be-43f9-a112-388dc5fcac98 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer [0.084579s] ... 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-e318a7fa-8a2b-4359-8d98-c18390c1331c X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_073_nodes_states_raid_put_admin [0.101843s] ... 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-ef9ef5e7-9182-48a3-95f0-a0332eae21f3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.083028s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40471064-c77e-4f11-840c-da091f425757 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "8b0ad0da-3574-4d7b-8c4e-349e45d857d8", "created_at": "2024-09-05T08:48:08.698970+00:00", "updated_at": null, "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/8b0ad0da-3574-4d7b-8c4e-349e45d857d8", "rel": "self"}, {"href": "http://localhost/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/ports", "rel": "self"}, {"href": "http://localhost/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/states", "rel": "self"}, {"href": "http://localhost/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/volume", "rel": "self"}, {"href": "http://localhost/nodes/8b0ad0da-3574-4d7b-8c4e-349e45d857d8/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.049141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/60443f8d-5c86-4179-bef6-bbec58328dd4 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-122d6f05-843f-450d-9136-27c5eff7bd61 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 \\\"60443f8d-5c86-4179-bef6-bbec58328dd4\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.079486s] ... 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-f00eec3c-152d-4009-9ac7-f62a8b2fec7c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin [0.087157s] ... 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-a286138b-1fe0-45ce-bef6-196c92c51fff X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_074_nodes_states_raid_put_member [0.084932s] ... 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-08b7e871-96a4-40fc-aa11-9f411006f381 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.043259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8fb1c973-997d-452a-8bcd-18a362654534 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e59adf31-4d52-4a94-a383-e3d67aef5181 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.076538s] ... 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-c7a1ee8c-cb7d-4273-92fb-f3676005f75a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member [0.088044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cfda0b80-fd06-4545-9bf2-df48729e46c5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_075_nodes_states_raid_put_reader [0.082682s] ... 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-22334747-d59e-4d49-89c8-aec27818ce70 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.082349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-747a939a-33f9-414d-bef8-be6b99e67299 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "3e1c8139-277b-4b85-ac11-50444d4a343c", "created_at": "2024-09-05T08:48:08.876427+00:00", "updated_at": null, "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/3e1c8139-277b-4b85-ac11-50444d4a343c", "rel": "self"}, {"href": "http://localhost/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/ports", "rel": "self"}, {"href": "http://localhost/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/states", "rel": "self"}, {"href": "http://localhost/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/volume", "rel": "self"}, {"href": "http://localhost/nodes/3e1c8139-277b-4b85-ac11-50444d4a343c/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.082712s] ... 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-5c17565e-928b-4a3c-a11f-fdd8d2b4bbac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.048004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cada5e41-49fb-4fb5-b82d-9481481d37b9 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8c32686a-90fe-4ee3-afca-8f273feacf67 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 \\\"cada5e41-49fb-4fb5-b82d-9481481d37b9\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.105544s] ... 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-2b17bdf8-fa35-4868-9566-7da47a6d194f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer [0.119617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-69f6cd16-c5cd-4502-bd0a-e722f99ab92d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.079639s] ... 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-761679bc-6deb-478f-811a-1ece56e78274 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.101075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90259efc-4443-4efa-bbe5-236094eba66a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "05333e4c-e6a5-4456-b5aa-00bf25247f71", "created_at": "2024-09-05T08:48:09.014590+00:00", "updated_at": null, "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/05333e4c-e6a5-4456-b5aa-00bf25247f71", "rel": "self"}, {"href": "http://localhost/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/ports", "rel": "self"}, {"href": "http://localhost/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/states", "rel": "self"}, {"href": "http://localhost/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/volume", "rel": "self"}, {"href": "http://localhost/nodes/05333e4c-e6a5-4456-b5aa-00bf25247f71/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.045525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7da16be8-ed3a-4c0c-8576-ded47a31e604 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8568bc96-454b-450b-ba84-4151d635044d 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.074640s] ... 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-32ed50fb-7c3c-4e81-a33a-d6373e8a9dad X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.091403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80 WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-356c4d46-8778-49e7-b634-7dd63921b414 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80", "created_at": "2024-09-05T08:48:09.165615+00:00", "updated_at": null, "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/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80", "rel": "self"}, {"href": "http://localhost/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/ports", "rel": "self"}, {"href": "http://localhost/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/states", "rel": "self"}, {"href": "http://localhost/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/volume", "rel": "self"}, {"href": "http://localhost/nodes/d11ef0e0-cd29-4290-90c4-ebbaa5aa6e80/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.195448s] ... 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-7ae648d6-36ea-4a28-8051-5fa969531a6e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin [0.206413s] ... 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-6d6ba896-fe1b-4834-8107-9ad533071178 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.123356s] ... 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-9baa8b78-d170-4ab1-8e19-c183ba776845 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_078_nodes_states_console_get_reader [0.071348s] ... 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-3f1c3589-6da0-483f-9d1a-5f74e892f29c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.087247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413 WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bcb4417-3a6e-4723-b70c-9e93436e71f5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "08fb427b-97dd-4ba6-8eef-f19a10d28413", "created_at": "2024-09-05T08:48:09.247122+00:00", "updated_at": null, "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/08fb427b-97dd-4ba6-8eef-f19a10d28413", "rel": "self"}, {"href": "http://localhost/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/ports", "rel": "self"}, {"href": "http://localhost/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/states", "rel": "self"}, {"href": "http://localhost/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/volume", "rel": "self"}, {"href": "http://localhost/nodes/08fb427b-97dd-4ba6-8eef-f19a10d28413/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member [0.093942s] ... 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-7e96e3b2-771e-41e6-ae7f-73ceeaf83fac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.075024s] ... 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-90b7e099-e817-477e-b3ec-75f861237f8d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.132143s] ... 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-fdb79b7c-45f4-4047-b710-b8e58929f034 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer [0.076480s] ... 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-1ab2694b-4b35-4648-9cb2-3bc02fe2bb11 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_protected_string [0.112325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923 WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b16e9a2e-887f-46a9-b15d-1394b72dfc53 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "c1743cb3-aef5-471c-bd76-c0dec9b8a923", "created_at": "2024-09-05T08:48:09.341837+00:00", "updated_at": null, "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/c1743cb3-aef5-471c-bd76-c0dec9b8a923", "rel": "self"}, {"href": "http://localhost/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/ports", "rel": "self"}, {"href": "http://localhost/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/states", "rel": "self"}, {"href": "http://localhost/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/volume", "rel": "self"}, {"href": "http://localhost/nodes/c1743cb3-aef5-471c-bd76-c0dec9b8a923/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.103057s] ... 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-0c0a74e4-a917-4ee2-8a71-872ccb8b9b18 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.091034s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/788496e0-e1f0-4e46-a649-f5ddd7bce66d WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2e9552d6-2c8c-4db9-bb05-bd5ae97db969 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.135740s] ... 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-b6412a6a-4a47-4671-8490-e47c5275db5a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.077169s] ... 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-dae3df56-2027-407c-952b-5c9c8ff844b9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.094826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2 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-9e0e7058-e882-464f-89dd-7dfe5c12a275 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "96bdeb06-1ec9-48b4-a28c-789012cbd4d2", "created_at": "2024-09-05T08:48:09.543062+00:00", "updated_at": null, "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/96bdeb06-1ec9-48b4-a28c-789012cbd4d2", "rel": "self"}, {"href": "http://localhost/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/ports", "rel": "self"}, {"href": "http://localhost/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/states", "rel": "self"}, {"href": "http://localhost/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/volume", "rel": "self"}, {"href": "http://localhost/nodes/96bdeb06-1ec9-48b4-a28c-789012cbd4d2/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.083559s] ... 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-89d24768-8544-41dd-bc6b-85fed661a332 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.123637s] ... 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-496e5dc7-4a42-45fa-b497-03bf8ba62e92 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.083781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/287977bc-0ee7-48d5-a497-f862677e2224 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b090d124-b6ff-47bd-be81-435256ec1ca6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "287977bc-0ee7-48d5-a497-f862677e2224", "created_at": "2024-09-05T08:48:09.635112+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/287977bc-0ee7-48d5-a497-f862677e2224", "rel": "self"}, {"href": "http://localhost/nodes/287977bc-0ee7-48d5-a497-f862677e2224", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/287977bc-0ee7-48d5-a497-f862677e2224/ports", "rel": "self"}, {"href": "http://localhost/nodes/287977bc-0ee7-48d5-a497-f862677e2224/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/287977bc-0ee7-48d5-a497-f862677e2224/states", "rel": "self"}, {"href": "http://localhost/nodes/287977bc-0ee7-48d5-a497-f862677e2224/states", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.080903s] ... 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-1e9e6eb1-c826-4956-a829-49e5e88074b8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.126723s] ... 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-68f29b1f-2a72-4e9c-bb5a-0b76a8524b70 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.091021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/bbb17297-0cde-478a-bb1b-f8f066825459 WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b08647fd-96f4-4f69-85a4-8a183503af2a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "bbb17297-0cde-478a-bb1b-f8f066825459", "created_at": "2024-09-05T08:48:09.722225+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/bbb17297-0cde-478a-bb1b-f8f066825459", "rel": "self"}, {"href": "http://localhost/nodes/bbb17297-0cde-478a-bb1b-f8f066825459", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bbb17297-0cde-478a-bb1b-f8f066825459/ports", "rel": "self"}, {"href": "http://localhost/nodes/bbb17297-0cde-478a-bb1b-f8f066825459/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bbb17297-0cde-478a-bb1b-f8f066825459/states", "rel": "self"}, {"href": "http://localhost/nodes/bbb17297-0cde-478a-bb1b-f8f066825459/states", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.070782s] ... 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-8219efc8-8a3f-445d-8cb1-e743dcaeff8c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_post_admin [0.380694s] ... 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-99033de5-4de5-4389-aac4-877ed5003c9c X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.044652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cec5ca3d-6e25-411b-ac6a-44fff2796595 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1e9747de-0606-4d63-84a3-8ad97bfa7a9f 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_member [0.085335s] ... 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-18b4a169-a47b-4d96-9d75-3bb429cad0da X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.111249s] ... 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-46d458ba-5679-4216-a8bf-b04d33ef54eb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.077170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7dcf1c0b-b5aa-4232-a86c-62899b0bcf69 WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-00c8404b-06f6-4789-a9d5-8ae3d5f4e212 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_manager_can_patch_node_instance_info [0.167730s] ... 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-96abad49-7078-4a0b-8dd5-2b40857f4ecd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer [0.072356s] ... 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-b4b25bb5-c7c1-4def-b683-cb6835b70014 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.074241s] ... 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-8932e3c8-31f4-4f6b-b48c-76b71152188e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_retired [0.082814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d96239ad-f5c5-413d-92ce-04fb104e36d9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "d79152f5-dbc5-48c6-809c-cd908d9e2a20", "created_at": "2024-09-05T08:48:09.932640+00:00", "updated_at": null, "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/d79152f5-dbc5-48c6-809c-cd908d9e2a20", "rel": "self"}, {"href": "http://localhost/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/ports", "rel": "self"}, {"href": "http://localhost/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/states", "rel": "self"}, {"href": "http://localhost/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/volume", "rel": "self"}, {"href": "http://localhost/nodes/d79152f5-dbc5-48c6-809c-cd908d9e2a20/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.076213s] ... 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-f4c8a39a-a4f1-45ff-afc6-3c0011374459 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.057154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7c2ff23c-5722-47bc-b65b-904ab375f5ca WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-58c4e635-eb67-4c6c-86f3-87bf0195c1c9 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin [0.087257s] ... 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-8bec8301-acf0-4d36-9f58-286f6a3d0a85 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.076318s] ... 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-16abe33a-8ab6-4971-8ee8-b4795e2c4757 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_lessee_reader_can_patch_node_instance_info [0.075059s] ... 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-53760334-2f8f-4e33-9785-3f70ec9e09bb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member [0.080791s] ... 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-25feb788-01b5-401d-8c11-ed532a68ac1d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.095216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628 WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6888dcb-d803-4769-a8aa-d98cd431bc72 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "f6922c3d-e86c-4bb7-89a0-fd6597d62628", "created_at": "2024-09-05T08:48:10.077071+00:00", "updated_at": null, "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/f6922c3d-e86c-4bb7-89a0-fd6597d62628", "rel": "self"}, {"href": "http://localhost/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/ports", "rel": "self"}, {"href": "http://localhost/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/states", "rel": "self"}, {"href": "http://localhost/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/volume", "rel": "self"}, {"href": "http://localhost/nodes/f6922c3d-e86c-4bb7-89a0-fd6597d62628/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.080890s] ... 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-70d8acca-8199-424e-a1cb-cf722d190827 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.086857s] ... 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-25314b19-ded9-4623-a114-91ca6e3e3517 X-Openstack-Ironic-Api-Maximum-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.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_observer [0.067921s] ... 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-6e549981-2273-4395-b725-2ee1c34486fb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.075547s] ... 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-d24ab6df-063d-4617-b43b-299c9ed5869d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_retired_remove [0.082119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20 WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5f2396f-9b8e-4c66-a61b-f8218dde6958 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "6f6c2762-33de-424d-ad25-3b0da90c2d20", "created_at": "2024-09-05T08:48:10.170007+00:00", "updated_at": null, "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/6f6c2762-33de-424d-ad25-3b0da90c2d20", "rel": "self"}, {"href": "http://localhost/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/ports", "rel": "self"}, {"href": "http://localhost/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/states", "rel": "self"}, {"href": "http://localhost/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/volume", "rel": "self"}, {"href": "http://localhost/nodes/6f6c2762-33de-424d-ad25-3b0da90c2d20/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.109372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5e6f617f-0813-43c6-bcaa-3798c000c338 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.087226s] ... 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-559a24d7-1751-4b97-83a3-f037dca65d68 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_retired_with_reason [0.092416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654 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-52f72042-09d0-44fc-8154-c5e5aecd51e8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "8e17c2b2-b276-41b9-a5e8-de2d6a28f654", "created_at": "2024-09-05T08:48:10.262660+00:00", "updated_at": null, "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/8e17c2b2-b276-41b9-a5e8-de2d6a28f654", "rel": "self"}, {"href": "http://localhost/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/ports", "rel": "self"}, {"href": "http://localhost/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/states", "rel": "self"}, {"href": "http://localhost/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/volume", "rel": "self"}, {"href": "http://localhost/nodes/8e17c2b2-b276-41b9-a5e8-de2d6a28f654/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.058448s] ... 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-07a642e6-1f2c-46b7-a8ed-7c5d5e99b4c3 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.074996s] ... 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-9809c9a1-7278-4953-a30a-4a2266fb14db X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_234_nodes_bios_get_admin [0.079863s] ... 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-dddf41f2-0130-4f64-9259-8b8510999e10 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": "2024-09-05T08:48:10.386721+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.TestRBACScopedRequests.test_system_scoped_092_nodes_vendor_passthru_post_reader [0.066333s] ... 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-8e9bc94a-907b-4340-8408-3ab05d7d14b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.116195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ffbbc762-8e28-40ac-b738-224373db2375 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "d45d8cc5-aa1f-4a30-9e8d-c44d464e2290", "created_at": "2024-09-05T08:48:10.435219+00:00", "updated_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/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290", "rel": "self"}, {"href": "http://localhost/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/ports", "rel": "self"}, {"href": "http://localhost/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/states", "rel": "self"}, {"href": "http://localhost/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/volume", "rel": "self"}, {"href": "http://localhost/nodes/d45d8cc5-aa1f-4a30-9e8d-c44d464e2290/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_member [0.071473s] ... 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-26cd7a49-5cae-4f53-beee-9bd7cd4c9061 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.081664s] ... 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-86ee778a-5603-4438-845c-33657af2043d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.049933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/26d8452a-01fc-4fd5-9038-c9201757f912 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-34459b5d-02f3-49a4-99e6-b40f4bc692c8 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.049562s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/feac588c-d3b6-466e-a391-18cb19422719 WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1e53fc0b-7f90-45aa-a92d-3354db88946a X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_owner_admin_can_delete_nodes [0.320273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1da18f7c-53f3-4ffb-968f-821056b080dd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_observer [0.117702s] ... 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-dba16522-004e-4264-b004-a9cc0106588c 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": "2024-09-05T08:48:10.559777+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.TestRBACScopedRequests.test_system_scoped_094_nodes_vendor_passthru_put_member [0.088648s] ... 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-cebcc6bb-8460-4dd6-8c9a-31deab1df96c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.084455s] ... 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-34771b70-c3f4-4820-8b70-daca8a7e2acc 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": "2024-09-05T08:48:10.608384+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_vendor_passthru_put_reader [0.077572s] ... 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-c25727e8-d296-420a-b532-3dc4fb51ea58 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_service_cannot_delete_owner_admin_nodes [0.119285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0df4d77-78c8-454e-853a-27a2172a9cf0 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.061242s] ... 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-2a6614ed-6f68-4ba7-ba82-d1d1f0f195e2 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": "2024-09-05T08:48:10.694503+00:00", "updated_at": "2024-09-05T08:48:10.728983+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1", "network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.034476s] ... 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-d1ca8b0a-dde6-4276-b461-21d31658e844 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.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.075286s] ... 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-f7c46735-22fe-4b64-b064-28f7edebe172 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin [0.166712s] ... 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-f7bb8336-d05c-482b-8c25-12b3a22aded0 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": "2024-09-05T08:48:10.713711+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"}]}} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.062685s] ... 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-a503473e-7987-4590-ba68-be54d855ded4 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": "2024-09-05T08:48:10.792690+00:00", "updated_at": "2024-09-05T08:48:10.826664+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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.073965s] ... 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-067ca64c-7910-4458-a842-444d0d806cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_add_node_id [0.035607s] ... 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-49380d4f-b214-4ca1-9d11-cd40fb8c25b3 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.test_acl.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.159464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-42171a17-54d5-4b0b-a79c-22af4903d208 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.072239s] ... 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-5a525662-58d9-4680-9e5d-d6555be37c79 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_member [0.150497s] ... 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-1bb7cd7d-b0a6-4f97-a0a0-1e7476d58988 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node_uuid [0.070765s] ... 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-0cd07f9b-47d9-41e7-98ac-112de9bfaabb 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": "2024-09-05T08:48:10.890532+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.074924s] ... 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-006eab68-9b9c-465c-a475-8e6a230d69f8 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"]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.061810s] ... 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-b3ded28a-1f28-4cbb-abf0-8fdf6b141609 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": "2024-09-05T08:48:10.961228+00:00", "updated_at": "2024-09-05T08:48:10.994705+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.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.164299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-36a34db3-8629-458d-b848-c2a8bcd4a231 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.045047s] ... 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-6f163aee-b393-40fd-857b-4e1439cd63f6 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.082358s] ... 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-5b57ab29-8dbf-4c1e-8bf6-c2aac107b116 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"]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.038963s] ... 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-6f826741-1ff6-4a06-93e0-1ccbd67581f0 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer [0.168216s] ... 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-179eff36-f88f-42a0-aa4e-fb67834419bc 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": "2024-09-05T08:48:11.037708+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.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [0.076792s] ... 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-6e5f1803-4115-4e6c-bb2e-801f5efa3f3e 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"]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_lessee_admin_cannot_delete_nodes [0.123030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1566e2ce-2b7c-4e85-ac4a-f1558e45ece4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin [0.077169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a98ce262-961f-4468-9467-83b15ae31e60 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}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.132601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '68d636be-80c9-4e46-acba-fc4e40979fe5', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-438e99df-1516-44ec-8159-ef2d28810358 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": "2024-09-05T08:48:11.118363+00:00", "updated_at": "2024-09-05T08:48:11.213061+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": "68d636be-80c9-4e46-acba-fc4e40979fe5"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_manager_cannot_delete_nodes [0.070143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a4739568-fd80-4307-a463-efadd5980b9a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_member [0.067283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b14ca9b-b6ed-4342-9ab7-68f13060b35c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.088736s] ... 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-61018eb4-6002-4206-9c79-529f88dd6299 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.067763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-595fb4c0-9eff-42eb-bdd3-6719d550df6e X-Openstack-Ironic-Api-Maximum-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.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer [0.065342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0e2e15d-b125-4f9e-8bee-3e3323bab966 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.070366s] ... 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-72a2ccb8-906b-4853-aa02-033f3cdda1cf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_add_root [0.098389s] ... 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-8341b0c6-d8be-444d-b090-d5081f1ced1f 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": "2024-09-05T08:48:11.258349+00:00", "updated_at": "2024-09-05T08:48:11.312031+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_add_root_non_existent [0.042536s] ... 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-e4e619c4-1817-4fe4-9b93-add15a4edd76 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.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_admin_can_validate_node [0.061072s] ... 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-2bf3837d-dd7e-49c9-8f8b-e96460bf4bcd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_hostname_get_admin [0.066075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1b21420-d2ca-4383-9acb-2d11fee802b4 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": "2024-09-05T08:48:11.351960+00:00", "updated_at": "2024-09-05T08:48:11.352749+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.074463s] ... 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-26dcec30-43bd-4d6b-9503-ea5f72a66fa8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string [0.068761s] ... 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-fd26dae5-bde6-4e4c-9f2a-dfd036089bc3 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.069059s] ... 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-47b985f4-de51-46e5-a1f2-b20c0d76a568 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_member [0.063697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b254c493-2000-490a-80f3-4820250ae141 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.068200s] ... 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-dbc6bbea-628a-4cb5-a573-66218e261fe3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_lessee_admin_can_validate_node [0.061556s] ... 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-557e9ca3-1184-4fea-9114-d00a9aca7242 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer [0.063165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf1ea213-3b28-4edb-b24c-5f8967804064 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": "2024-09-05T08:48:11.481273+00:00", "updated_at": "2024-09-05T08:48:11.482065+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_traits_delete_member [0.067386s] ... 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-e522d5c3-1a05-433a-8170-4448eba53e6a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.066926s] ... 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-b407394b-3612-4866-a09c-56ba6fb5e741 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_246_allocations_post_admin [0.069134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0e7668c6-f534-44d2-813a-cdf87ae3c65d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.060705s] ... 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-b1b11b4c-c1f3-4a9e-8bc3-262c9d2b7bcd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.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. {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.060932s] ... 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-9c5d2fc2-ec10-453e-bffb-857189360548 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_observer [0.073122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-edcde5ca-dee6-4673-981c-3168c31071f6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.288746s] ... 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-fe1c049b-44a0-4a95-b4c5-1a9d7f7b7000 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.068279s] ... 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-fca6ac8f-0128-4e28-b234-1336f5f4955b X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.241671s] ... 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-95913fcb-60c5-4101-be4a-30c268ea092b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_get_admin [0.071581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4381c7ea-eafd-4083-acb0-892c806fca82 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": "46f21e49-cc57-4c0f-82f9-3fb0df713d10", "created_at": "2024-09-05T08:48:11.735789+00:00", "updated_at": "2024-09-05T08:48:11.740424+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/46f21e49-cc57-4c0f-82f9-3fb0df713d10", "rel": "self"}, {"href": "http://localhost/allocations/46f21e49-cc57-4c0f-82f9-3fb0df713d10", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.056438s] ... 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-6101a614-cde7-4846-9644-ac78c2267bda X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member [0.066584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ab36ec01-3606-4b0e-9322-6326b6a5d35d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.116626s] ... 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-d4470a3f-3ce7-4e85-87bb-0488b65f8316 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.140742s] ... 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-5ece2022-2ab4-4516-b210-5ff774da32d5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_observer [0.087206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a467ac4a-3334-499b-91f5-928a8bb4d215 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": "c40a5a3a-af1e-4f62-9491-5b4b838afc04", "created_at": "2024-09-05T08:48:11.874297+00:00", "updated_at": "2024-09-05T08:48:11.878917+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/c40a5a3a-af1e-4f62-9491-5b4b838afc04", "rel": "self"}, {"href": "http://localhost/allocations/c40a5a3a-af1e-4f62-9491-5b4b838afc04", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.156442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/8173df75-0eff-4b5c-8d3c-ce749a51a4e6 WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e84b740a-af80-48e7-a990-f487890e70df 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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.089803s] ... 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-27936f1b-90d0-47e9-a119-8a2ad8f46000 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_109_nodes_traits_trait_put_member [0.083728s] ... 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-8697cc29-c703-43aa-8d12-9208d4589aac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin [0.129786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d149237f-9a67-48fd-bdde-3bfc40ab1056 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ddb94de-b410-492e-bb49-19a8a8f3b7d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "d149237f-9a67-48fd-bdde-3bfc40ab1056", "created_at": "2024-09-05T08:48:11.996217+00:00", "updated_at": "2024-09-05T08:48:12.005983+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/d149237f-9a67-48fd-bdde-3bfc40ab1056", "rel": "self"}, {"href": "http://localhost/allocations/d149237f-9a67-48fd-bdde-3bfc40ab1056", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type [0.129654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/7d799e10-0cc1-4463-b317-1e7d35b48fcb WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2f9f30a-6296-45fc-a0f7-0da13e19c016 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "7d799e10-0cc1-4463-b317-1e7d35b48fcb", "created_at": "2024-09-05T08:48:12.007205+00:00", "updated_at": "2024-09-05T08:48:12.064539+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/7d799e10-0cc1-4463-b317-1e7d35b48fcb", "rel": "self"}, {"href": "http://localhost/ports/7d799e10-0cc1-4463-b317-1e7d35b48fcb", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.111467s] ... 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-c58519cb-5cda-454e-8ff8-4ff9459722e5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.091408s] ... 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-c585590a-e2b5-4c8a-b72c-4b7a4a559416 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.039448s] ... 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-d034ce36-1181-4ee0-9d5e-f0515fc5f5d1 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_member [0.071323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/7727d031-1753-4baa-9fc1-d833b717827f WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ba00fe9-5554-4b7a-9d1c-5bbfe34c1ae0 X-Openstack-Ironic-Api-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 7727d031-1753-4baa-9fc1-d833b717827f could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.039308s] ... 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-07ee8b42-4faf-4169-8066-22b971bc9fdc 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.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.072397s] ... 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-87d9bc32-0f12-4b19-8bdb-5d805ab40808 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.099715s] ... 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-d1521e92-35b5-4027-bc44-2daa5f6de85a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.059758s] ... 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-b656d158-9177-4085-9430-7a588c0a3aec 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_observer [0.086410s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/1bc1659d-c4a7-4209-aba5-1deec2845f26 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c92a19eb-eb86-42a4-9cab-2c4b8f680473 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1bc1659d-c4a7-4209-aba5-1deec2845f26", "created_at": "2024-09-05T08:48:12.180305+00:00", "updated_at": "2024-09-05T08:48:12.186592+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/1bc1659d-c4a7-4209-aba5-1deec2845f26", "rel": "self"}, {"href": "http://localhost/allocations/1bc1659d-c4a7-4209-aba5-1deec2845f26", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.069770s] ... 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-32d2783b-9094-4fbf-96f9-37470e0030e6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.061474s] ... 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-cf7b0617-fc18-4e9f-b53a-df9476748bb1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.061040s] ... 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-f0b70084-b13e-41c0-b1d0-82f5c9b5c2ec X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_remove_multi [0.102578s] ... 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-a0b9d3e5-3316-428f-bf14-582423188066 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": "2024-09-05T08:48:12.234403+00:00", "updated_at": "2024-09-05T08:48:12.275383+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-c72b5024-2994-49f8-8207-06d4579d8ab0 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": "2024-09-05T08:48:12.234403+00:00", "updated_at": "2024-09-05T08:48:12.307826+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_nodes_traits_trait_delete_reader [0.073387s] ... 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-f45fb6ca-dcdf-46ee-a4d4-1d88507670fe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_patch_admin [0.095510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/e0ebd8f7-e943-4e6d-aadc-f2751cd49c77 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbc894f4-b4a9-41c5-a331-5fb087ddb20b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e0ebd8f7-e943-4e6d-aadc-f2751cd49c77", "created_at": "2024-09-05T08:48:12.260163+00:00", "updated_at": "2024-09-05T08:48:12.312859+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/e0ebd8f7-e943-4e6d-aadc-f2751cd49c77", "rel": "self"}, {"href": "http://localhost/allocations/e0ebd8f7-e943-4e6d-aadc-f2751cd49c77", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.040570s] ... 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-1532c43b-ead6-43d9-acd8-35505e02f3b6 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.test_acl.TestRBACProjectScoped.test_project_scoped_092_third_party_admin_cannot_set_maintenance [0.062388s] ... 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-de4601d9-55fc-4cbd-98f8-9f628848a318 X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.074642s] ... 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-1e3b744e-499f-452b-8046-cf8ab4fb32bf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_member [0.076448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9f4f28b2-97d3-42f8-b31a-7b0389999edd WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8cae12ef-7476-450c-bddf-628186e6227e X-Openstack-Ironic-Api-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 9f4f28b2-97d3-42f8-b31a-7b0389999edd could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.048793s] ... 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-b4279185-6f1c-4ebf-8b74-ba5d9baa464a 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.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.061480s] ... 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-1798e87f-a40c-479e-b0fb-e1cc99fecdbc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_115_nodes_vifs_get_member [0.069410s] ... 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-a233babe-d2ef-415c-ad1a-61e60c66532b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.074545s] ... 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-6af37311-d0d4-47e5-9357-631f020a1b52 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": "2024-09-05T08:48:12.430037+00:00", "updated_at": "2024-09-05T08:48:12.470470+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} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_observer [0.079224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/b59761a9-70d6-48a7-bcfb-3afc9d28c51c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-226dbb54-2803-4c61-9d0e-4c18913ff22b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.062246s] ... 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-9729e0f2-d65d-4a12-9d15-07eb272e5a5d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_116_nodes_vifs_get_reader [0.069365s] ... 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-3afa7df0-ce74-42bc-90e1-76fbe742ead9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.067716s] ... 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-c93d5d0e-b097-4dc8-8291-796260ffa383 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.test_acl.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.068758s] ... 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-0e06bd72-334c-4d0a-85c0-c530f6fb01d7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin [0.100277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/b043115c-f02e-4c89-9aa4-a77b08377544 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b80d7066-79e6-4788-9538-986eaa42d2bb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.052317s] ... 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-3a3ba44f-f632-47f0-b8c1-04d87f1231ab 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.test_acl.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.065012s] ... 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-1ad86492-dfb0-4651-9884-5ac83b70470b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_117_nodes_vifs_get_service [0.105249s] ... 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-147e1b18-12b0-46a4-9242-bafb554194fd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_remove_uuid [0.043544s] ... 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-8ec0ef65-343f-4ef2-989d-40097f121d94 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_member [0.076329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/075e52c0-00e7-48cb-a868-799a00c94e5f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-08ab3e26-8f54-4ca7-a5a7-2cc6e6f14350 X-Openstack-Ironic-Api-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 075e52c0-00e7-48cb-a868-799a00c94e5f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.061184s] ... 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-63be6212-9084-4071-aecd-eb99669fd393 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.060972s] ... 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-26a72c54-4ebd-4ee1-ba32-a3ee82345a35 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.075075s] ... 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-f41928ca-7b2f-4f9b-bb1b-59bf1ab150cc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_observer [0.071663s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/aeb816d1-d361-4d02-974a-ef389c115a11 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-82058706-8342-4d6e-897b-64da6c47c7e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.061629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-63899759-8616-4b3b-8129-7bad87c795cb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.063800s] ... 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-f6ffc91f-1231-404b-884b-71341d807907 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": "2024-09-05T08:48:12.730771+00:00", "updated_at": "2024-09-05T08:48:12.765320+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.075282s] ... 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-440b9929-22b3-4da7-93ef-20099a813a01 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.058858s] ... 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-47089f65-51f5-4416-b3ed-b673c307c8f5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACModelBeforeScopes.test_rbac_legacy_261_nodes_allocation_get_admin [0.076283s] ... 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-20fdd4b3-85af-4a89-9b89-71e1523dd8e9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "66b9a09a-1f79-40c1-a7b1-e4fe1579cfc9", "created_at": "2024-09-05T08:48:12.763624+00:00", "updated_at": "2024-09-05T08:48:12.767900+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/66b9a09a-1f79-40c1-a7b1-e4fe1579cfc9", "rel": "self"}, {"href": "http://localhost/allocations/66b9a09a-1f79-40c1-a7b1-e4fe1579cfc9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.066811s] ... 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-c98a1363-a68e-4395-8ce1-1f2493a683f6 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": "2024-09-05T08:48:12.794938+00:00", "updated_at": "2024-09-05T08:48:12.832551+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.072401s] ... 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-3cc9342d-01b6-451c-b7d9-9699cabf11c6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.061996s] ... 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-70b060e4-e6da-48d1-b331-16958c09438e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_replace_node_id [0.038514s] ... 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-34008a24-e02f-420e-95b3-815e542fde6d 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_member [0.074268s] ... 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-a9bacea7-d400-49ad-aa47-a1921c26ec1f X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.069299s] ... 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-9b70e5db-1199-4ddc-9d92-02809a793683 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.061442s] ... 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-e6e5d212-52e8-453a-b6c1-d86cd485fd86 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.063899s] ... 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-6134ffb2-0b95-48fb-a447-07c2537188ca 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": "2024-09-05T08:48:12.900649+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_non_existent_node_uuid [0.042777s] ... 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-1a945b8c-4e15-4749-939a-4c7733fe14c7 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.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.063687s] ... 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-c87d3c11-8bc9-4347-aac2-7baf7d6bceb1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_122_nodes_vifs_post_service_project [0.071285s] ... 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-aeb25cee-4e3a-4a2e-8d90-6436208401ae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.067575s] ... 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-c85b190e-3b20-4ce2-a137-2963e563d262 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": "2024-09-05T08:48:13.008768+00:00", "updated_at": "2024-09-05T08:48:13.045137+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} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.063050s] ... 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-29576222-6dac-4939-bd56-ffb67ab0543b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.066764s] ... 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-8212b0c4-5cbb-493f-9090-351a1684c035 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.043590s] ... 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-4d0be767-58c6-4034-91ac-e46237f34304 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.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.063499s] ... 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-3e8db477-eecf-4518-a495-8b83a6197ffe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.043898s] ... 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-aa553c2e-a0a1-4c87-9b38-257e1ce9b142 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.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.068384s] ... 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-0d4f52cd-4673-4f3a-8a0a-f9b0c28ab0cd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer [0.254339s] ... 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-356dca16-5ddb-401f-9d32-98276d3c2b09 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "d06f3ade-60bf-46bc-bec4-a70435b5caf2", "created_at": "2024-09-05T08:48:13.094126+00:00", "updated_at": "2024-09-05T08:48:13.099451+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/d06f3ade-60bf-46bc-bec4-a70435b5caf2", "rel": "self"}, {"href": "http://localhost/allocations/d06f3ade-60bf-46bc-bec4-a70435b5caf2", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.063478s] ... 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-4e47a455-d7b7-4cb2-ad7e-5176683dc18d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_125_nodes_vifs_node_vif_ident_delete_reader [0.065590s] ... 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-cdef14d9-c3ba-4020-94e3-91da895483ef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.072084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '3fd29183-8f7a-4c37-b1dc-2c7050b3b8c7', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f89b3d1d-1bda-41e9-9b3d-71be2a3e5aad 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": "2024-09-05T08:48:13.164408+00:00", "updated_at": "2024-09-05T08:48:13.206198+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": "3fd29183-8f7a-4c37-b1dc-2c7050b3b8c7"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_delete_admin [0.073774s] ... 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-e0b62231-c894-4394-a4d8-e9c8ad3acd5c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.041003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'ba066d6b-2004-45c8-ab3d-d73f4f3d41c5', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cbe50cd6-bbfc-44ad-88c1-cfe49d4810ec 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.069555s] ... 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-f7c60543-8402-4b04-a9f4-487df97474e9 X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_126_nodes_vifs_node_vif_ident_delete_service [0.070397s] ... 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-e28b429d-03e8-4de2-be83-38529272098c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_member [0.071033s] ... 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-9e9378f4-fee2-4a0a-8f9e-0856ebcc1882 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.065585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'f67f8c52-1769-412b-b55e-46104e5602ad', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72321996-ebd1-42ca-ba46-0565f5a93713 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": "2024-09-05T08:48:13.279252+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.TestRBACScopedRequests.test_system_scoped_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [0.076824s] ... 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-906fc657-a7b0-4660-bac6-968f5a922661 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_observer [0.073839s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b9e74af6-19d7-4d2e-96b9-3c84ed8b78f9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_128_nodes_management_indicators_component_get_allow ... SKIPPED: Not implemented yet {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.073636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'd00fc743-4b87-4722-9f1f-4bf69df3e42a', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '5af11a95-3478-436a-b553-1004981a6df1', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8709c21f-1a27-4fa6-ab26-e75280859050 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": "2024-09-05T08:48:13.345411+00:00", "updated_at": "2024-09-05T08:48:13.388241+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": "5af11a95-3478-436a-b553-1004981a6df1"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.069504s] ... 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-a52971f3-5198-4c73-8e77-e654ada3a14a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_129_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: Not implemented yet {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_deploy_templates_post_admin [0.077281s] ... 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/5b649a46-3105-47b2-bdf5-8b5d3b57f813 Openstack-Request-Id: req-3077547e-09f3-43c6-9152-f393b7c673a9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "5b649a46-3105-47b2-bdf5-8b5d3b57f813", "created_at": "2024-09-05T08:48:13.440090+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5b649a46-3105-47b2-bdf5-8b5d3b57f813", "rel": "self"}, {"href": "http://localhost/deploy_templates/5b649a46-3105-47b2-bdf5-8b5d3b57f813", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.063462s] ... 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-a83b1c3a-f60c-4dcb-ac0c-c8b1e35fea05 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": "2024-09-05T08:48:13.419343+00:00", "updated_at": "2024-09-05T08:48:13.454347+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.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.070139s] ... 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-5e4d864c-526a-4b6e-adfb-5a64fcc6cd0d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.037677s] ... 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-1c02e5ca-b80e-4df8-9de0-3a02050c06b3 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.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_member [0.078234s] ... 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-0530d666-6800-4497-b4e8-28301c4fe5e4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.048395s] ... 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-e140002d-9847-46c5-87b7-611eb07d8bee 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.072423s] ... 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-7a5e6b01-4d92-4622-846b-0ac0ca3d1f3a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.061900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c210c48-726a-49d4-abdb-675b2f320c9c 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.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.033842s] ... 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-bcb3ed89-869d-468c-9ba0-5140e1fe24a0 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_observer [0.072655s] ... 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-9b2a517d-1af4-4dad-a926-40e4f17cc2ef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.070030s] ... 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-5b450464-b5c5-41da-83f6-312dcacb7dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_132_portgroups_get_member [0.063593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff8fc740-8493-4f3f-85be-99d72b75d4f0 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.controllers.v1.test_port.TestPatch.test_update_byid [0.062876s] ... 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-c27af8e8-6000-47b1-b9e4-e8a5bcdd2fe7 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": "2024-09-05T08:48:13.605219+00:00", "updated_at": "2024-09-05T08:48:13.639405+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_get_admin [0.068301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3606778b-afc2-4f61-951a-463522f1b159 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": "0fce5bf0-08ea-4c1a-9102-d2c5103a8597", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/0fce5bf0-08ea-4c1a-9102-d2c5103a8597", "rel": "self"}, {"href": "http://localhost/deploy_templates/0fce5bf0-08ea-4c1a-9102-d2c5103a8597", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_portgroups_get_reader [0.063083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6736c671-7d2e-479d-970c-d9fec1e6d19f 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.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.071223s] ... 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-bedc3bb2-6cd2-451b-ab31-f58f5b9ae592 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.070196s] ... 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-8069d09c-de61-4787-a317-db889d5065a3 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": "2024-09-05T08:48:13.668382+00:00", "updated_at": "2024-09-05T08:48:13.709951+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_member [0.064421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cfe74872-d94f-4bef-80b8-1c88db07ae39 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_portgroups_post_admin [0.072438s] ... 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/3baf5142-7368-486b-9ff6-4b44dac591ee Openstack-Request-Id: req-2869fb6d-f3ef-42ae-8884-32a96b75feca X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "3baf5142-7368-486b-9ff6-4b44dac591ee", "created_at": "2024-09-05T08:48:13.758466+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/3baf5142-7368-486b-9ff6-4b44dac591ee", "rel": "self"}, {"href": "http://localhost/portgroups/3baf5142-7368-486b-9ff6-4b44dac591ee", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/3baf5142-7368-486b-9ff6-4b44dac591ee/ports", "rel": "self"}, {"href": "http://localhost/portgroups/3baf5142-7368-486b-9ff6-4b44dac591ee/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.063688s] ... 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-8e32dce2-6715-4042-8507-bacfcf0987a8 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_observer [0.067055s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85df210c-fc62-4831-9d7f-5288517d746a 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": "6633684f-82ba-4a73-9974-86aaaae63b45", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6633684f-82ba-4a73-9974-86aaaae63b45", "rel": "self"}, {"href": "http://localhost/deploy_templates/6633684f-82ba-4a73-9974-86aaaae63b45", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.037543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/25db3c9f-0d3f-49ae-8402-1c5ee7fb6bf1 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b8feb726-b2ac-4efa-8015-e88158d8d56d 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 25db3c9f-0d3f-49ae-8402-1c5ee7fb6bf1 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_portgroups_post_member [0.069726s] ... 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-73bc30f4-b6ee-4108-a00f-53e7ff09475b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin [0.069328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/8d21cf57-150c-4ff2-8729-cdf22325dd62 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95fdf79b-7703-4893-b1b3-00d72fec68e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "8d21cf57-150c-4ff2-8729-cdf22325dd62", "created_at": "2024-09-05T08:48:13.845479+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8d21cf57-150c-4ff2-8729-cdf22325dd62", "rel": "self"}, {"href": "http://localhost/deploy_templates/8d21cf57-150c-4ff2-8729-cdf22325dd62", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.066426s] ... 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-1d4268bd-042c-4f38-b18c-76b58fdfb05b 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": "2024-09-05T08:48:13.844547+00:00", "updated_at": "2024-09-05T08:48:13.879268+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.068582s] ... 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-68f44347-383a-475a-9d16-417cb8f2617c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member [0.065811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/66410229-509d-49f3-b943-76027044fa12 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a8446bea-82b0-406d-b29c-9c1fdb3ce00b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.248027s] ... 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-35f1c66c-9df5-4c1e-b8a2-c64c8806ee89 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.063460s] ... 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-fbe42e57-c02a-4206-80b5-790ebca32087 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": "2024-09-05T08:48:13.908648+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [0.065734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-913eb162-2873-45c1-af23-9d2e00f92e31 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": "2024-09-05T08:48:13.938058+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.040003s] ... 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-77e688e9-c471-4565-a394-ff3a95ed0be7 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}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.021141s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer [0.070766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/1b1f09ae-edb7-4edd-a23d-8e376406d56f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50852250-a7dd-4c32-9374-0fdc198a1daa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1b1f09ae-edb7-4edd-a23d-8e376406d56f", "created_at": "2024-09-05T08:48:13.982521+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1b1f09ae-edb7-4edd-a23d-8e376406d56f", "rel": "self"}, {"href": "http://localhost/deploy_templates/1b1f09ae-edb7-4edd-a23d-8e376406d56f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.071233s] ... 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-5bd01e98-da78-42a2-a7db-2efd8877db55 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.020384s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.063002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6a04df7-b596-4071-88ad-b4b51801c949 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": "2024-09-05T08:48:14.005473+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.019768s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.020096s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.068587s] ... 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-68014382-eb55-4da0-bdbe-b33eda69a310 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.020830s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.064406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86082c70-c168-4c89-b7de-3f4e4c567682 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": "2024-09-05T08:48:14.069478+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.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin [0.096817s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/967c427a-a4c7-43fa-b080-fc963839cc5d WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bfe9cbd-092b-437e-8936-a6a4dacfaea8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "967c427a-a4c7-43fa-b080-fc963839cc5d", "created_at": "2024-09-05T08:48:14.054507+00:00", "updated_at": "2024-09-05T08:48:14.102796+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/967c427a-a4c7-43fa-b080-fc963839cc5d", "rel": "self"}, {"href": "http://localhost/deploy_templates/967c427a-a4c7-43fa-b080-fc963839cc5d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.020840s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.020041s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.020649s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_owner_manager_can_get_supported_boot_devices [0.072578s] ... 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-f726b5b5-f26b-4fb2-9275-17d65b64e5a5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.068662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c61840b-6acc-4895-93c9-0aeeb63702e7 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": "2024-09-05T08:48:14.135308+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.020578s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member [0.069412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d4355dfa-ee2e-440f-b6a5-1ca920be6a01 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3e186226-5297-4866-a964-c5e38142ef84 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_member_cannot_get_supported_boot_devices [0.069521s] ... 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-e7a4aca2-5b62-4ffe-967e-31e17199a393 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.071365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-918fa660-4d6a-4876-aa52-12dddc77ee8c 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": "2024-09-05T08:48:14.206809+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.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer [0.067602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/1ad1c460-009f-4132-9049-7760e697042a WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa066dda-137a-4360-9031-7c37f69fdd0d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.068963s] ... 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-abd4ba92-9fd7-42c0-b2ab-64e63f03ccbf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.067255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61fe1291-07c0-4260-9132-9ec0d8ed62d8 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": "2024-09-05T08:48:14.274992+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.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin [0.068372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/9f5373fc-5294-490e-8ec0-94143ac67136 GOT Response: 204 No Content Openstack-Request-Id: req-ff444cec-a6cc-4946-ae91-50772f2e3e4a 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.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.066272s] ... 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-a2cf3e0e-e58d-47f3-98b2-4d14b87979fa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.072713s] ... 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-346c0df3-0210-4c71-91cb-b1bbf1aba6e8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member [0.061895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/05e9afc6-8dc4-4b58-b443-db7e6ec83d8c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8a6d19f3-5f1a-4d0c-a70f-09946fde32f2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.225505s] ... 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-1814c11e-86f2-4214-afa1-ec586ee4c611 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": "2024-09-05T08:48:14.375250+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.069064s] ... 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-15c57c88-a64a-4c83-b901-2cc9ea4a5233 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.043274s] ... 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-acbfb0c8-259d-43c2-ab77-e47cae4b034c X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer [0.065785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/e6e4c2c5-f451-47bb-b3b1-26f24b3e22fd GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-50ce6cbf-703e-429e-ad2f-f391b6b99d24 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.049118s] ... 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-06071845-7b4d-4a1f-b471-87254733eefd 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": "2024-09-05T08:48:14.469415+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.test_acl.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.069468s] ... 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-a5045db8-52d5-49be-bd0c-e204dea7b445 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_282_chassis_post_admin [0.068725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/c341417f-7478-4faf-9e65-77352218ccd5 Openstack-Request-Id: req-8540d376-8d99-4584-ba31-c0b8416c5a00 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c341417f-7478-4faf-9e65-77352218ccd5", "created_at": "2024-09-05T08:48:14.514191+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/c341417f-7478-4faf-9e65-77352218ccd5", "rel": "self"}, {"href": "http://localhost/chassis/c341417f-7478-4faf-9e65-77352218ccd5", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/c341417f-7478-4faf-9e65-77352218ccd5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/c341417f-7478-4faf-9e65-77352218ccd5/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.048156s] ... 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-9d48520a-e892-4c7b-a51f-a006629a851a 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": "2024-09-05T08:48:14.518201+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_manager_can_send_non_masking_interrupt [0.068730s] ... 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-7273b41e-9285-4b6a-be53-ea066d0020c1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.043758s] ... 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-7c9785fd-ed64-4569-b47c-7b543c5344c3 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_member [0.066834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-860248ee-15b5-44d0-afb4-11cf3d69190c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.242563s] ... 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-871f4a4d-94cc-4806-b444-b33e0d3d3abf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.049746s] ... 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-8fb1ac36-0856-4997-89c7-60a1ed10a6a9 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": "2024-09-05T08:48:14.612668+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.074838s] ... 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-82e34951-5243-4754-a9a8-1d8b206ccfc0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_observer [0.066914s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ecaa9a62-681c-4777-8a60-d720797312e4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.046456s] ... 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-831f89a7-e213-469f-b4e4-d092c9dfbb64 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.069350s] ... 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-04117736-90d8-48dc-8873-169cafb1571c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.069435s] ... 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-f9c69a0b-2412-4942-9512-28d56e6beaf9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_get_admin [0.065528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc2363a5-159e-421b-9996-fa38360f095b 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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.071546s] ... 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-725f7a6d-2bcf-4796-9a95-8ea094771537 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": "2024-09-05T08:48:14.710363+00:00", "updated_at": "2024-09-05T08:48:14.719074+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-0bfc6cb7-fce5-44bc-856c-784a5cf3829f 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": "2024-09-05T08:48:14.710363+00:00", "updated_at": "2024-09-05T08:48:14.719074+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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.065055s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-16a84b7b-b2d5-4ddc-a737-32095d1e39a4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_member [0.064119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-39304ce4-e4ef-47e9-82f6-ca3af5be341c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_third_party_admin_cannot_send_non_masking_interrupt [0.070744s] ... 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-158262cf-1629-411e-b337-aaae4ca36c24 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_node_id [0.046516s] ... 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-4f838ba2-1a71-4cae-b2d7-4e8fab17dd3e X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_147_portgroups_portgroup_ident_delete_member [0.067569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-67297101-a76a-4fb4-b33b-d71907b5a485 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.047531s] ... 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-35acc426-8fba-45fb-8c42-93309ae20510 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_observer [0.064943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18e5a3e9-2665-44ef-8641-a9ca5ebcd1ac 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.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.070699s] ... 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-19d069ea-bc2d-4468-a2dd-c77234962197 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} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.065441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f0a8088c-8bbd-4f52-a6a1-f8ca2309cb4c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.045572s] ... 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-80aa71cc-59d9-4ee0-815e-70951a341a09 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_detail_get_admin [0.065767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b85a89a1-7db9-43d0-bb57-ecaea0a6e229 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": "2024-09-05T08:48:14.890945+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.071022s] ... 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-e83e5b13-ba72-4a42-90dc-d9b7c4ea55a2 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} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.050514s] ... 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-87430962-b94f-434b-8e89-5227a48214cb X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.070819s] ... 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-16ec88af-958b-49f1-9a82-a10f246073e9 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.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_member [0.063760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2b3eca67-857e-4774-9ab7-d326cf7d9c83 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.053225s] ... 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-5b6ce1f0-f092-4fd2-8bf7-de610d424fff 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": "2024-09-05T08:48:14.974734+00:00", "updated_at": "2024-09-05T08:48:14.983489+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.test_acl.TestRBACProjectScoped.test_project_scoped_128_third_part_admin_cannot_get_states [0.070634s] ... 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-cb33fa97-f743-4ae5-ab77-c5a9b768fa97 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.071367s] ... 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-61203a6e-272c-488e-8cbd-9410426904fc 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.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.046491s] ... 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-0ee25911-7e8c-4557-b4c4-dc448f390ba9 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer [0.064808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa8ca036-08fc-453c-899d-886a8d514754 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": "2024-09-05T08:48:15.022479+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_admin_can_put_power_state_change [0.069904s] ... 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-04caa6e2-baef-48c8-9eaf-bb19d17dbc93 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.052166s] ... 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-584e39fc-6829-44ed-95fc-a1101dd76877 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": "2024-09-05T08:48:15.076635+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.072651s] ... 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-6cbfb6b6-3e7e-4411-bf35-d969a033c22d 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.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_chassis_id_get_admin [0.066978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc612064-f818-464f-9293-da851086bf48 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": "2024-09-05T08:48:15.088812+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_owner_manager_can_put_power_state_change [0.069747s] ... 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-6e38c35d-48bd-415d-b6cf-fb624f5e1ae7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.051038s] ... 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-c7ce1df8-e557-4507-a71a-149345159c00 X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.071240s] ... 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-b2b13f65-2f72-4328-851e-b97446ccd3ef 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.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_member [0.064501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-521f7bfd-509a-47fc-9dc8-cd80281cdea2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.052032s] ... 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-edc1763f-7742-486a-a2cd-73d22c861dac 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": "2024-09-05T08:48:15.181760+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_lessee_admin_can_put_power_state_change [0.070035s] ... 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-6a9d6da8-29c8-45c4-b15b-4b16395aae94 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_153_nodes_portgroups_get_service_project [0.064858s] ... 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-e587173e-caff-4e0d-bbe5-a619accf171a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_observer [0.065644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c3e6496-ae21-4574-9b3a-5f333966c9bc 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": "2024-09-05T08:48:15.223738+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_portgroup.TestPatch.test_update_address_invalid_format [0.050141s] ... 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-226e3216-90d1-4fcf-9835-80aa20f335df X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.070745s] ... 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-3fa53f61-714c-42d6-ac71-19cba572fbd4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.037215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/52:54:00:cf:2d:31 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_portgroups_detail_get_admin [0.075614s] ... 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-e1a77234-16dd-4570-9c5b-2b6610dbaf20 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": "2024-09-05T08:48:15.285655+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.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_patch_admin [0.073030s] ... 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-122a9755-16dc-464a-8c17-815ecdb280d5 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": "2024-09-05T08:48:15.288312+00:00", "updated_at": "2024-09-05T08:48:15.319831+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.051384s] ... 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-ca985f7b-4843-4ec0-8ab2-4eaba1466585 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": "2024-09-05T08:48:15.322590+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_owner_member_can_put_power_state_change [0.071868s] ... 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-3216c65b-3c14-4703-8e53-45cfe103fc0f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.035557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_member [0.066488s] ... 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-568708e2-af73-4551-9a67-b7c62dfa264b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_155_nodes_portgroups_detail_get_member [0.073549s] ... 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-778f3292-269c-47e8-8b02-84630a9bd50a 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": "2024-09-05T08:48:15.361033+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_lessee_member_can_put_power_state_change [0.070924s] ... 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-5270b4f2-2e16-4f75-97c3-1a69ea58c3d0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.052932s] ... 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-7acc3031-004e-4d40-9b6e-c08e84e935a8 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": "2024-09-05T08:48:15.409521+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_observer [0.069646s] ... 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-168dac36-40b9-4cf4-b3d4-08c77e6120e3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_156_nodes_portgroups_detail_get_reader [0.071503s] ... 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-e0473598-bcb9-436c-8253-2dbeb8bf5e0d 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": "2024-09-05T08:48:15.436968+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.047649s] ... 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-31b04496-7546-4708-8b19-d48ba208f12f 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": "2024-09-05T08:48:15.462314+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.068474s] ... 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-4fc17188-b0fc-4cfe-aa88-c3efb5d2381b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_service [0.067831s] ... 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-725dc026-6009-4e6d-9b2a-b144244fdc6f 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": "2024-09-05T08:48:15.505159+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.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_delete_admin [0.071637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-c433e6c4-f587-4cba-92ee-2c147d089037 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_portgroup.TestPatch.test_update_in_inspecting_allowed [0.055745s] ... 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-89e986ce-51a4-4f88-860b-3374d7fe973d 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": "2024-09-05T08:48:15.511740+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_reader_cannot_put_power_state_change [0.067067s] ... 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-1428aebd-6b1b-4e05-9c1f-294a7cc484e3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.060113s] ... 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-5139313e-d090-4791-83a5-1c59fafc0561 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service_project [0.063250s] ... 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-880c5df3-189d-4c53-90d4-8a0df87caee1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACProjectScoped.test_project_scoped_137_third_party_admin_cannot_put_power_state_change [0.063746s] ... 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-9319e1f7-f18d-451f-99cf-a5bf84d2221b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_invalid_name [0.043748s] ... 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-22f342cd-9d7e-4470-b73b-63d4b38ddd43 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_159_ports_get_admin [0.063439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28065703-3dc5-4dde-be1b-96e437b4c165 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.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.039248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/e3073c4a-3866-4625-8e70-746cec7ad258 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5ebd8ff6-e92d-4e10-9625-9d023c31ee6c X-Openstack-Ironic-Api-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 e3073c4a-3866-4625-8e70-746cec7ad258 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.067476s] ... 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-071996ae-0ac0-4863-969e-1cd651688a16 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_160_ports_get_service [0.067104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa53f088-814f-43a8-b05e-6c18fba2983d 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.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.051621s] ... 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-86513643-ad0a-4343-ae49-633ff5e3b335 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": "2024-09-05T08:48:15.712961+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.065946s] ... 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-36c620cb-345d-43ba-8243-af64eee29eae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_member [0.241718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d1a95f28-1064-46db-869b-1bac631cf3c5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.049205s] ... 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-f82ee93f-dfcf-4bbd-b40a-ab3283b44752 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_service_project [0.064889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9637187f-847d-430c-9328-f7cbee355305 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.test_acl.TestRBACProjectScoped.test_project_scoped_140_lessee_admin_can_put_boot_mode_state_change [0.067933s] ... 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-c9e796ff-cf3e-432b-93dc-8c8eb65991f4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.052968s] ... 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-1a6517b3-79ba-4a90-9e3a-4fc7098ee6ce 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": "2024-09-05T08:48:15.814269+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "802.3ad", "name": "pg.1", "properties": {"bond_param": "100"}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_observer [0.063988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bc7c3f44-89fe-43ed-a206-e901a93640e4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service_project_disabled [0.061590s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6be5e7d7-7d44-415b-878c-015a726002d5 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.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.056802s] ... 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-e3aa7169-6ca1-4609-8114-9f91b9995971 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-b1e858f0-d0b7-4b82-8f95-108ebd007a06 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.TestRBACProjectScoped.test_project_scoped_141_lessee_manager_can_put_boot_mode_state_change [0.069371s] ... 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-4d87eb4c-6774-4308-af8a-f0118befd7a3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_300_node_history_get_admin [0.071722s] ... 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-5c3dabd6-eed2-4c29-a0ea-0c697bee4b90 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": "b822914f-5b70-44ec-9c00-891f5abbc294", "created_at": "2024-09-05T08:48:15.892987+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b822914f-5b70-44ec-9c00-891f5abbc294", "rel": "self"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_ports_get_member [0.065019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75e68335-9ca5-4478-ba8e-5e2ca7b85e05 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.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.053212s] ... 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-9963d8f6-75d1-47fc-bd20-f4cca21d9ab3 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": "2024-09-05T08:48:15.928255+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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [0.067369s] ... 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-2ca9d48f-48dd-46b9-8dbf-9e3af273eb2c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_member [0.069031s] ... 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-589a10bb-2369-4857-92ec-7f0723049e92 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_portgroup_standalone_ports_supported_bad_api_version [0.037076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_reader [0.063994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7ea0fe4-5308-4dba-9e3c-53e4ded9be77 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.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.036574s] ... 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-1a7482bf-3d8d-4e14-987e-1a0fc20748bc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "52a0344a-3f83-4132-822a-280cbd967176"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_lessee_member_can_put_boot_mode_state_change [0.068644s] ... 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-2755744f-df4f-4e0b-a9c6-0ae4c5703d93 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_165_ports_post_admin [0.066934s] ... 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-e3172566-bf84-48d5-a644-4ed6bdf6682a X-Openstack-Ironic-Api-Maximum-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}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.036376s] ... 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-9ee3f5b6-92d3-44fd-8a87-71c207fd8c74 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0b858454-4492-4610-b1ef-d32f9d0b4e0b"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_observer [0.075499s] ... 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-7144bbfe-402c-4cd0-99f2-398551bfbc7e 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": "580d9aad-2402-41aa-855a-8e23ebbbd8c5", "created_at": "2024-09-05T08:48:16.039384+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/580d9aad-2402-41aa-855a-8e23ebbbd8c5", "rel": "self"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.038343s] ... 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-d02ddc97-ddaf-4dc2-ba67-4a56b800d982 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_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.068774s] ... 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-deb39fd1-611c-4908-8acc-8ba3f8edbf39 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_166_ports_post_member [0.067690s] ... 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-4d67289c-cdd6-40bf-bcd6-07c5f1853561 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_entry_admin [0.074821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e56e8e34-6a70-452f-8d0b-115b186e8b29 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-13a7c30c-4e17-421d-ac39-0f1c1a7e2af0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "e56e8e34-6a70-452f-8d0b-115b186e8b29", "created_at": "2024-09-05T08:48:16.117358+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/e56e8e34-6a70-452f-8d0b-115b186e8b29", "rel": "self"}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.040720s] ... 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-823d5cc0-3248-4a3a-aefc-2b9468e010fe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d113c4ea-c86b-425c-baec-20d6e973efd3"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_reader_cannot_put_boot_mode_state_change [0.066728s] ... 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-318ea69e-9eae-4049-934f-72b61ba0fc24 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_invalid_schema [0.041042s] ... 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-ba7815f9-ddad-4afe-be16-f505b1a954b7 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_reader [0.066049s] ... 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-d8387643-191f-4d88-a572-ccc6cc506643 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_member [0.069315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8687eadb-0fe0-46f5-ab47-4dedd792f987 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0ab755da-75a9-4d99-952a-134c73e29317 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.042248s] ... 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-12ec3aca-181e-4973-ae39-e8b7c21daf68 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": "efa319e0-4f59-4976-94fb-432a97635964", "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/efa319e0-4f59-4976-94fb-432a97635964", "rel": "self"}, {"href": "http://localhost/nodes/efa319e0-4f59-4976-94fb-432a97635964", "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"]}} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_third_party_admin_cannot_put_boot_mode_state_change [0.069080s] ... 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-3318e5bd-72aa-4c35-aeff-0879522e3476 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_168_ports_detail_get_admin [0.063717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-486f425a-648b-475b-a3b6-0b6820678de7 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": "2024-09-05T08:48:16.228344+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}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.038608s] ... 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-76a854a9-8fd8-454a-b37e-c0da9591a73e X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer [0.072691s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/61953bc8-f44b-4c08-80a3-adcba3ec4964 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42f5e627-dd76-4399-944e-f29b5bbfa1e5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "61953bc8-f44b-4c08-80a3-adcba3ec4964", "created_at": "2024-09-05T08:48:16.261784+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/61953bc8-f44b-4c08-80a3-adcba3ec4964", "rel": "self"}]} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.034353s] ... 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-9ea22a65-ef35-4729-90ba-809ca6dc0f3e 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}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.024293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-389cbfc1-e906-4ee1-a5fd-d88c048e0dab {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_ports_detail_get_member [0.063006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61e4e68b-7b10-4475-b127-0dc539673658 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": "2024-09-05T08:48:16.293121+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.072135s] ... 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-80ef58a6-a438-4ee2-afee-83b2cf5f3828 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status [0.033320s] ... 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-e5241c25-9301-41e0-bd45-e4be0813e67e X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.028581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3493716c-e782-47fe-bfb4-03b88ea02a08 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.024283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-061d0694-5c9b-4c1c-a077-c175a43803fd {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.032103s] ... 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-b8bc398a-a45d-4766-a1f2-bf70dd0a2aeb X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_reader [0.064540s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d207d77-ab6f-419c-bed7-7d61c59c75f0 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": "2024-09-05T08:48:16.357467+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_owner_manager_can_put_secure_boot_state_change [0.070238s] ... 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-a2a1ef3f-3467-4eed-a2d5-4a3c4c975bc2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.027409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/e37d0c33-f6d2-4e5e-ba2b-6c3998d11651 WITH {'callback_url': 'url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5cb1946c-4a45-449e-9b35-c656be9a6f0f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e37d0c33-f6d2-4e5e-ba2b-6c3998d11651 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.028202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f1f691f-d471-4fd6-b17b-2cde65dc12ee {"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_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.025694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c5e19a6c-ff8d-4103-be50-e3d31454d33b {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.033366s] ... 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-ad09054e-dd5f-4f69-9117-cec3ec5edd06 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_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.024651s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e2bf4c13-80d2-4067-9a7b-1963a6a71411 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_ports_port_id_get_admin [0.068739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab0a6b93-60ea-44e1-b6fb-764ea9b9ad05 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": "2024-09-05T08:48:16.423003+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} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.034012s] ... 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-e360277b-250b-4a28-8d1d-ea9c96b4e323 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_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.026587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7cba059d-490e-49c1-8b8e-3be260d90b1e {"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.2.dev27/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n\\n File \\\"/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/api/controllers/root.py\\\", line 43, in index\\n return root()\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1092, in __call__\\n return self._mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1096, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1151, in _execute_mock_call\\n raise effect\\n\\nException: Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\\n\"}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token [0.032339s] ... 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-fff519dd-0133-451e-ae72-6393c2f15e20 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_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.024563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b8f7a24b-206d-4add-ac2e-58dca1471773 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_ports_port_id_get_member [0.066738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9bdb71a-5aa1-4e49-b115-3d080c60e5d4 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": "2024-09-05T08:48:16.491082+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_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.026327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-adcdee0f-f018-47eb-b0ec-62894fa77219 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.033438s] ... 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-d4d55932-bdec-4980-83a0-783f89df14b6 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_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.024952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c053f810-09fb-4746-beac-584a6fc086cd {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.032786s] ... 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-f48b0d45-eb05-49ec-8ccc-0c00e536e433 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_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.024954s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8716d2a1-15ae-4439-beef-63841e323734 {"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.2.dev27/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n\\n File \\\"/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/api/controllers/root.py\\\", line 43, in index\\n return root()\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1092, in __call__\\n return self._mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1096, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1151, in _execute_mock_call\\n raise effect\\n\\nException: Error message without traceback \\n but \\n multiline\\n\"}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_reader [0.066063s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51f3792b-fccd-4a31-8061-3b11566e4917 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": "2024-09-05T08:48:16.557600+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} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.034474s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-2f62901a-921f-449f-be65-a27bccffa30c 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_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.022351s] ... ok {3} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.024062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e642398d-67a0-4903-85c7-64e79c4d1732 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.032726s] ... 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-d0c81892-075c-4eba-8117-acede37e6175 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.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.253621s] ... 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-3eb9cc11-ec74-48e0-801f-8b89d6d8bd35 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_method.TestExpose.test_expose [0.027312s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbc626cd-48c4-4e7c-b8e6-50b62b6d1f24 {"foo": true} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.028418s] ... 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-89c9f59b-24ed-4501-8b8e-9fce8be23c5a 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.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_patch_admin [0.085578s] ... 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-5b64038f-5ab2-4966-87b0-7fdb2e8d4481 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_method.TestExpose.test_expose_validation [0.027653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a373a241-a39c-4247-aa6e-80801766ce04 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid flag: Unrecognized value 'truish', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.029010s] ... 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-51d1f890-daa2-44cd-85c3-3869c2678d7b 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}"} {3} ironic.tests.unit.api.test_method.TestExpose.test_post_body [0.027673s] ... 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-a8df5027-bac4-4ef1-951c-dd26a84b50ed {"three": "three", "four": "four", "five": "five"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.028904s] ... 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-40d4ba1a-a312-43fe-b2c6-f507539ae9d3 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.076219s] ... 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-7c16ba97-5e1a-4392-943d-768941f59146 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_method.TestExpose.test_post_body_validation [0.029811s] ... 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-53ec93ab-1f04-4c3e-ad5b-493d05d2628f {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_patch_member [0.083543s] ... 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-526babb0-5995-416d-babf-011a462a495f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_method.TestExpose.test_response_204 [0.026084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/no_content WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-c3a96353-9c8b-4a84-9add-91338ed6f04c {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.067528s] ... 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-fb10a8bc-4814-4a4e-b82d-777f6331c69e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_method.TestExpose.test_response_content [0.025612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_content WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-552452b3-688f-47a3-9dfb-ed76358a2f5d "nothing" {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_reader [0.066372s] ... 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-c87cd046-d063-4903-8740-fa0dda94806c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status [0.026117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-a988cf9a-0751-4759-a7a2-d4dac7a7591b "accepted" {3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.029576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1483291c-524c-4f16-b3e3-afca6e4d1966 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.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.069297s] ... 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-234872f7-6e1a-4ce4-8fce-37a0816fdc03 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.026719s] ... 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_ports_port_id_delete_admin [0.064542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fc2f4042-86ba-496f-ac20-b556e57732a4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.025583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3ce76db1-c784-43a1-8efd-991fd175f8bc 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.TestHeartbeat.test_old_api_version [0.200856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/0475c740-4d3f-4e83-afcf-6b13a54d2a29 WITH {'callback_url': 'url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-329eeb68-b8df-4986-8058-2e63802c76cf 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_acl.TestRBACProjectScoped.test_project_scoped_153_owner_reader_cannot_put_secure_boot_state_change [0.069058s] ... 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-1ff827a5-802c-4bec-b378-78e980800a9d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.026407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3a749d8-2b80-46a5-97e4-f07df1b57903 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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_ports_port_id_delete_member [0.066089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b7642d60-701b-4bcb-9129-5f04c88e386e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.026632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d33eb8f-6e92-4257-9ce0-d9eab9066204 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.TestLookup.test_fast_deploy_lookup [0.051801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=894c5257-9ccb-472f-bb50-4477a8134bf2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48de4096-188b-43b8-8008-61438ed9e9f4 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": "894c5257-9ccb-472f-bb50-4477a8134bf2", "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/894c5257-9ccb-472f-bb50-4477a8134bf2", "rel": "self"}, {"href": "http://localhost/nodes/894c5257-9ccb-472f-bb50-4477a8134bf2", "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=894c5257-9ccb-472f-bb50-4477a8134bf2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac73ea26-9c49-4f25-871a-36345685cbb8 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": "894c5257-9ccb-472f-bb50-4477a8134bf2", "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/894c5257-9ccb-472f-bb50-4477a8134bf2", "rel": "self"}, {"href": "http://localhost/nodes/894c5257-9ccb-472f-bb50-4477a8134bf2", "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=894c5257-9ccb-472f-bb50-4477a8134bf2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83ec9b43-1abd-47bd-a5a0-31bf524a6606 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": "894c5257-9ccb-472f-bb50-4477a8134bf2", "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/894c5257-9ccb-472f-bb50-4477a8134bf2", "rel": "self"}, {"href": "http://localhost/nodes/894c5257-9ccb-472f-bb50-4477a8134bf2", "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"]}} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.026487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3aade16d-ac28-4fa0-843c-f4727c94cbfc 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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.071165s] ... 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-81195813-8a4c-4217-8df0-c48d73b18cac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_reader [0.064700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e93b87bd-435a-4e23-904c-71467d93d1cf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.026218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20cea08e-ff5e-4b2e-843f-de02cdfdff3c 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.TestLookup.test_found_by_addresses [0.051014s] ... 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-0da4f5bb-9fef-4502-b30b-6d1ea651b5a3 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": "d3cc3613-10ca-47ef-8b56-7408fbb85c65", "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/d3cc3613-10ca-47ef-8b56-7408fbb85c65", "rel": "self"}, {"href": "http://localhost/nodes/d3cc3613-10ca-47ef-8b56-7408fbb85c65", "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"]}} {3} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.022938s] ... ok {3} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.021367s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.045479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=c7059198-837c-4caf-913a-0bd7a9f3db8c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-25c83af9-cad1-46c6-bdd0-763a79ef2316 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": "c7059198-837c-4caf-913a-0bd7a9f3db8c", "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/c7059198-837c-4caf-913a-0bd7a9f3db8c", "rel": "self"}, {"href": "http://localhost/nodes/c7059198-837c-4caf-913a-0bd7a9f3db8c", "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.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [0.072452s] ... 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-6012d43b-a31f-405c-ace6-ba26c6595408 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_180_nodes_ports_get_admin [0.069261s] ... 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-0a1f8887-f86a-476f-bbb6-1f184245f91d 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.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.024566s] ... ok {3} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.020351s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.047792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=156cefd3-31ce-4008-b406-13a20d135d6d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5a96101-6213-4c4f-bc2a-73ea8181fe2c 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": "156cefd3-31ce-4008-b406-13a20d135d6d", "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/156cefd3-31ce-4008-b406-13a20d135d6d", "rel": "self"}, {"href": "http://localhost/nodes/156cefd3-31ce-4008-b406-13a20d135d6d", "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_acl.TestRBACProjectScoped.test_project_scoped_156_owner_admin_can_change_provision_state [0.070862s] ... 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-c8e5a61c-8b10-4346-9e81-a8f343778578 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_181_nodes_ports_get_member [0.073786s] ... 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-2391b8fa-5ba7-47a9-8fd3-4d02b9275b48 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.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.047369s] ... 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-ba17ca19-50dc-4976-a42b-e5a0c4b7931a 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": "23ed6dbd-3371-4c25-9729-5a802ee54ba9", "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/23ed6dbd-3371-4c25-9729-5a802ee54ba9", "rel": "self"}, {"href": "http://localhost/nodes/23ed6dbd-3371-4c25-9729-5a802ee54ba9", "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"]}} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.043509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=158b15a5-3185-4176-9d2c-11b22676dc70 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8ae89889-15e2-43ee-8eaa-6e73f3d3efc9 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": "158b15a5-3185-4176-9d2c-11b22676dc70", "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/158b15a5-3185-4176-9d2c-11b22676dc70", "rel": "self"}, {"href": "http://localhost/nodes/158b15a5-3185-4176-9d2c-11b22676dc70", "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_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.070901s] ... 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-1c0d8a18-771e-459e-9038-9125c2d468b1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_reader [0.073803s] ... 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-4dc5e1f2-edf2-483c-9889-741d3a5a88c3 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.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.038267s] ... 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-45981537-4d20-480c-bf2c-a2ab27521858 X-Openstack-Ironic-Api-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_ramdisk.TestLookup.test_nothing_provided [0.037129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-83a34d6d-f491-4b2a-ab18-9ecec4f9da8c X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_owner_member_can_change_provision_state [0.069901s] ... 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-4075638a-a1b3-418b-8e8f-c1cbafab2b28 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.cmd.test_status.TestUpgradeChecks.test__check_obj_versions [0.187655s] ... ok {3} ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.023500s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.041435s] ... 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-fbe9215c-78e5-4411-8143-e237d53f0867 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.common.test_args.ValidateDictTest.test_dict_valid [0.020432s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.071020s] ... 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-f7d693a8-c4b9-40cb-9aa8-135eed36ef0b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.038505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=04372d84-4270-4539-bf5f-dd62fa1c839d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e146cfdd-ce09-4596-96d1-346efb0736f7 X-Openstack-Ironic-Api-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.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.019516s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.019893s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.019121s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.047477s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.019319s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.071438s] ... 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-473cf8a2-d285-4aac-a2a1-3a8f81b71618 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.020186s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.048989s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.019693s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_detail_get_admin [0.237759s] ... 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-6e0a1db0-cf95-4d1e-ad11-940c22cf4558 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": "2024-09-05T08:48:17.446234+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}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.019965s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_member_cannot_change_provision_state [0.071457s] ... 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-bd91e3e8-d698-4a55-97e8-680b99edc7a4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.020365s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.055136s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.020769s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_detail_get_member [0.068878s] ... 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-ef17deb5-08f0-4996-a24c-c644b11eb359 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": "2024-09-05T08:48:17.515899+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}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.018721s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.017666s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure [0.045168s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_third_party_admin_cannot_change_provision_state [0.071665s] ... 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-9b963c92-617b-4a78-be23-b722b8d66ce2 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.017778s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.018557s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_reader [0.070606s] ... 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-1ab7906b-3cb9-424c-9f9d-877c208f85c0 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": "2024-09-05T08:48:17.585040+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}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.018375s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.017886s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.071300s] ... 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-790daff7-597e-4d30-b282-6e0edc5399d5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.017964s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.017581s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_portgroups_ports_get_admin [0.070050s] ... 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-d1e5be30-f6f0-493b-a851-5837b56ea0b1 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.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.017516s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.019303s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.071952s] ... 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-c014dcc2-d435-49e0-9f03-65ebb5b5d2f7 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.018120s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.017359s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_portgroups_ports_get_member [0.069765s] ... 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-46d7df14-9ac4-4916-ac00-67b0f16834f7 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.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.017701s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.022571s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.224268s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_owner_admin_can_set_raid_config [0.071473s] ... 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-a495e6f1-dea0-4c89-9af9-96eaddd160b8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.018943s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_portgroups_ports_get_reader [0.069623s] ... 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-49b59979-a6b3-4534-9527-33b8f98a108a 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.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.024129s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.047743s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.018509s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_manager_can_set_raid_config [0.071889s] ... 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-c713bbd6-ac61-410e-8031-d7433ea76eef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.017993s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.045657s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.018550s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_portgroups_ports_detail_get_admin [0.070024s] ... 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-326b3ca7-efa9-4926-a9c3-ead9e8772c36 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.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.019996s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.020743s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.047460s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_cannot_set_raid_config [0.072257s] ... 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-9adfe37e-0c9b-4fce-8c88-9a18ea00f2f0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.020128s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_portgroups_ports_detail_get_member [0.070929s] ... 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-4ffe3007-8425-46e7-a401-c5b54c6b212b 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.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.023056s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.051798s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.021356s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_manager_cannot_set_raid_config [0.071936s] ... 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-efce098f-cc87-4fda-85a7-80ae296b8bc8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.020566s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.018506s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_portgroups_ports_detail_get_reader [0.070417s] ... 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-403801e4-1041-41af-87ed-359e4557fabd 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.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.052361s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.019040s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.019901s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_raid_config [0.071709s] ... 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-592ee118-a192-42e6-89e4-0771b01926ee X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request [0.050948s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.020916s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_volume_get_admin [0.057634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1eab719-122f-4f79-924f-cd2bdfebe05b 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.020607s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.020021s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value [0.049468s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_volume_get_member [0.057257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8780cab1-1f7a-452c-a78a-d5632d5ebdc7 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.020716s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_lessee_member_cannot_set_raid_config [0.075439s] ... 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-aa870f90-c6eb-438f-8499-09b842583b8d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.018947s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.052878s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid [0.020500s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_reader [0.058776s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de9b32ae-04f2-4361-8262-b84519ab51b7 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.019413s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_third_party_admin_cannot_set_raid_config [0.071244s] ... 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-9e5d1b3c-f42f-4f9e-95e4-640a331ccbdb X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.019056s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.052630s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.019546s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_service [0.058459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6cb99da-1516-4501-97e9-680e8997ca8f 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.019083s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_service_cannot_set_raid_config [0.069095s] ... 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-b8451581-c4d0-4356-826e-bfa3666702d3 X-Openstack-Ironic-Api-Maximum-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.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.052895s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.047546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c368af97-f463-480f-bb1e-6d3adad182be 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-2d61373c-af25-429f-bd7c-700d009c8994 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-8b6f5e79-b524-4ee8-81be-c23649642389 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-6c8d90ac-e98a-47be-9393-70c9036d675c 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-265ccfab-d5d8-4f91-b73a-5457649a97aa 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-a6d8ad0c-1847-4947-9fc9-5b6e09a71856 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-dd59223d-20ba-41c3-8b1b-1f861dbc436c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"targets": []} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_get_service_project [0.059159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2517931f-5054-4192-b5af-ff843cf09aaf 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.025364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ff624c2-6a79-43f9-833c-365babec2b34 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.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.054266s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_owner_admin_can_get_console [0.078954s] ... 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-62b45014-b4a3-48a0-9541-bf61a46b9533 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.036198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-062dcc38-7ef8-4eaa-952a-08b1bc523cf7 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.TestRBACScopedRequests.test_system_scoped_197_volume_connectors_get_admin [0.065370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ce731f9-93f0-4b76-84d6-dee3658c8be6 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.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.053999s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.030607s] ... 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_owner_manager_can_get_console [0.070677s] ... 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-97a80e64-f1b3-4b0b-80ec-bb333c794d7c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.045717s] ... 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-d8bdffb3-604e-45dc-9c1c-46ca541a9974 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_198_volume_connectors_get_member [0.062705s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f6c7f6e-4cd7-4cee-b718-75260f04aa2d 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.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.053214s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client [0.025029s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.044473s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-bb58b173-813b-4201-b994-0a2766c45a0d X-Openstack-Ironic-Api-Maximum-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}"} {3} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_service_token [0.024835s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_reader [0.063252s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5f2c9c0-95a4-4e02-97ca-e8e0bfde35f7 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_owner_service_can_get_console [0.075105s] ... 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-50deaceb-7828-4efe-b099-73b74df6b9a5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.028543s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.049965s] ... 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-44aeed30-c5d3-438c-865d-703a8f140526 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": "2024-09-05T08:48:18.538928+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.024013s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_volume_connectors_get_service [0.063377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82cf4b04-097f-4cdd-ad26-bafabe7a06e0 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_lessee_admin_cannot_get_console [0.071536s] ... 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-1293cbb2-4817-4d9b-a3e6-dedaedfcce59 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.025383s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.042381s] ... 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-89788df8-6cc5-49b7-85bc-719210ef4b3b X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.024100s] ... ok {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.023051s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.053755s] ... 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-328de572-2a61-49bb-a7ed-916ea063224a 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": "2024-09-05T08:48:18.634981+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.TestRBACScopedRequests.test_system_scoped_201_volume_connectors_get_service_project [0.065009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5cfb79d7-dd1f-458a-a57a-611e72f41b49 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_177_lessee_manager_cannot_get_console [0.072448s] ... 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-abcac86e-1d6c-4ae2-a04e-7ffa0dacb243 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.026016s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.042891s] ... 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-1c0ab060-5a05-4a88-a554-f197478182f7 X-Openstack-Ironic-Api-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.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.040450s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_volume_connectors_get_service_project_disable [0.062575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e61e9252-5664-4d23-bfa4-788194020331 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"connectors": []} {3} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorsTargeted.test_vhd_table_over_limit [0.021486s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_owner_member_can_get_console [0.071577s] ... 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-406c4471-d89b-4025-8fe3-768b0109391d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_volume_target.TestPatch.test_add_root [0.052936s] ... 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-d1bb19f2-3042-4d7f-a7fc-cb6d09d8bf8f 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": "2024-09-05T08:48:18.731886+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorsTargeted.test_vhd_table_under_limit [0.021343s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000575s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.018692s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_volume_connectors_post_admin [0.069300s] ... 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/0f3bd325-5453-4765-a1e9-abb1aceb521f Openstack-Request-Id: req-b7413b7a-ec96-4983-83e0-6a0a2d3c237d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0f3bd325-5453-4765-a1e9-abb1aceb521f", "created_at": "2024-09-05T08:48:18.789125+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/0f3bd325-5453-4765-a1e9-abb1aceb521f", "rel": "self"}, {"href": "http://localhost/volume/connectors/0f3bd325-5453-4765-a1e9-abb1aceb521f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.042052s] ... 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-05a6b294-3385-45e5-81a3-4cae02336bbb X-Openstack-Ironic-Api-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.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.022172s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_179_lessee_member_cannot_get_console [0.073480s] ... 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-9cd35e12-1d16-4d3f-b880-a67ebafcaa0d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.021569s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.048006s] ... 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-6cf4d7dd-fc03-4ee3-90ce-e88afac01bc3 X-Openstack-Ironic-Api-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.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.020106s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_volume_connectors_post_member [0.070374s] ... 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/318f0733-2c58-437a-9d23-df02af97f0e4 Openstack-Request-Id: req-c3d00481-d9a8-4cc7-9928-45c156dfe833 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "318f0733-2c58-437a-9d23-df02af97f0e4", "created_at": "2024-09-05T08:48:18.859998+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/318f0733-2c58-437a-9d23-df02af97f0e4", "rel": "self"}, {"href": "http://localhost/volume/connectors/318f0733-2c58-437a-9d23-df02af97f0e4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.020989s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_owner_reader_cannot_get_console [0.069964s] ... 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-20d1049d-8e68-4003-af64-7fc4ffd22a79 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.028271s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.072955s] ... 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-7eef6390-7858-49ad-a156-02f9040b79bc 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": "2024-09-05T08:48:18.875761+00:00", "updated_at": "2024-09-05T08:48:18.878967+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-567a5427-b0b1-4895-b9ed-2f3279ae2e12 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": "2024-09-05T08:48:18.875761+00:00", "updated_at": "2024-09-05T08:48:18.878967+00:00", "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_reader [0.066028s] ... 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-ae5f2326-c6d2-41ee-a629-d5eefe9ef832 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.029319s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.018508s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.039780s] ... 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-0f493bff-a23c-43fa-b0be-d5090c4a4a03 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_181_lessee_reader_cannot_get_console [0.072999s] ... 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-142fb200-f3f7-480c-a3c6-35811765c054 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.027956s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_service [0.070763s] ... 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/b187075c-9b2a-49f1-8fb0-e65967b943d4 Openstack-Request-Id: req-7d8b0806-e392-4bb9-9ce0-608f8add4cb7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b187075c-9b2a-49f1-8fb0-e65967b943d4", "created_at": "2024-09-05T08:48:18.997338+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/b187075c-9b2a-49f1-8fb0-e65967b943d4", "rel": "self"}, {"href": "http://localhost/volume/connectors/b187075c-9b2a-49f1-8fb0-e65967b943d4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.044411s] ... 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-82cd117b-e8a5-493e-9f35-2ae505dd8889 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.027143s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_third_party_admin_cannot_get_console [0.066671s] ... 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-b1572574-832a-48c5-8b52-770c148c04f3 X-Openstack-Ironic-Api-Maximum-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.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.028842s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.039037s] ... 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-989488ea-b7cd-47ce-aad4-ffa78eeeefc8 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.026634s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_service_project [0.073304s] ... 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/9482b1c5-edf7-413c-9ca5-84486e6fc214 Openstack-Request-Id: req-8ff2d74f-1b70-4484-8378-d3129ebe1d6e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "9482b1c5-edf7-413c-9ca5-84486e6fc214", "created_at": "2024-09-05T08:48:19.070716+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/9482b1c5-edf7-413c-9ca5-84486e6fc214", "rel": "self"}, {"href": "http://localhost/volume/connectors/9482b1c5-edf7-413c-9ca5-84486e6fc214", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.028275s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_admin_can_set_console [0.069091s] ... 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-6bead6e3-cd08-44c9-a031-a72c895334cd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_copy [0.028170s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_volume_connector_id_get_admin [0.065393s] ... 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-7b0974cf-7b17-4671-a0d0-4e40e8cbcc6c 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": "2024-09-05T08:48:19.117223+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.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.028291s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_manager_can_set_console [0.069486s] ... 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-1f979620-9652-4777-a4c6-1a01ded5b04d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.028956s] ... ok {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.021956s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_volume_connector_id_get_member [0.066001s] ... 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-90ba84da-5730-4824-a222-fe96a7cb9c3d 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": "2024-09-05T08:48:19.183066+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.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.024192s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_set_console [0.070771s] ... 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-fbbe2b8f-656b-441b-bd5a-17688830da05 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.024965s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_reader [0.063744s] ... 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-89c7cb81-c63a-44b8-ba8d-0470eeb32834 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": "2024-09-05T08:48:19.248765+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.230784s] ... 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-e928efcc-e60b-493a-9b9c-4b3ddcc3b124 X-Openstack-Ironic-Api-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.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.026590s] ... ok {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_symlink [0.024157s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_set_console [0.071170s] ... 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-2db16ee2-4b0b-4e0c-89ba-3598edd003c7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.048810s] ... 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-f5ce293d-52f4-40a8-b4d4-fa31bd1e15aa X-Openstack-Ironic-Api-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.common.test_image_service.FileImageServiceTestCase.test_show [0.023963s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_patch_admin [0.081652s] ... 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-8b1c0865-da03-489f-9ea5-af1493bc7ce7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.020132s] ... ok {3} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.019889s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.053624s] ... 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-588f1596-09ec-44ac-afc2-27a136c65eba 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": "2024-09-05T08:48:19.353986+00:00", "updated_at": "2024-09-05T08:48:19.356883+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"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_owner_member_can_set_console [0.070700s] ... 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-132bdfa3-196d-46a0-a1ea-8faf9caf8174 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.021083s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.018627s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.042476s] ... 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-429123b7-06a8-4655-80aa-2b3a7b5b88ce X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_patch_member [0.075832s] ... 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-69d527ad-bc81-45bb-963d-cda6f9764949 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.021373s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.019380s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_set_console [0.069649s] ... 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-042a5ed0-3709-4390-a195-1b2230c91b2e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.054930s] ... 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-ddbc9ed3-07db-4884-9c00-451ec4d9a934 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": "2024-09-05T08:48:19.453297+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.022056s] ... ok {3} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.020086s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_reader [0.069394s] ... 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-83ee4601-3bb0-45e9-8b78-c597916a0a23 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.024289s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.047533s] ... 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-35745f02-304f-4403-a08e-cbccebaad401 X-Openstack-Ironic-Api-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.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.022118s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.018640s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_service [0.073390s] ... 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-3df79f68-a127-4145-9d1a-57fdae613375 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.049322s] ... 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-e734268b-74ce-4eef-987a-048205798020 X-Openstack-Ironic-Api-Maximum-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.common.test_images.FsImageTestCase.test__get_deploy_iso_files [0.022374s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.021238s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.017801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.056819s] ... 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-63a072f7-82cb-4b2e-ba96-8d73b23cd0b6 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": "2024-09-05T08:48:19.608668+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_delete_admin [0.069394s] ... 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-e48b3556-5bd6-40b5-b126-b916089ed973 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.023309s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.021078s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.052831s] ... 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-37cb0406-e981-42f6-bcee-31ad83a0a26b 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": "2024-09-05T08:48:19.663806+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": "bar"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.022065s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_service_can_set_console [0.248081s] ... 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-f5a5e68e-934d-488f-ba84-886b9b0f3252 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_delete_member [0.065875s] ... 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-8b59f8ec-d3d3-4a7a-baf5-41867e58972a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.025359s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.037702s] ... 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\": \"\"}"} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.023762s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.036613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/6ab2bfa4-43a1-4c6d-85c0-3e020cd399b7 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-de2fd8ba-fae0-4fe1-8ed3-7ead72241071 X-Openstack-Ironic-Api-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 6ab2bfa4-43a1-4c6d-85c0-3e020cd399b7 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.023626s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_reader [0.068241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a6448229-72da-45e6-a6d6-cf7199164a73 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_service_cannot_set_console [0.070840s] ... 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-5b70bdae-4a3c-4825-af61-65c468984568 X-Openstack-Ironic-Api-Maximum-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.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage {1} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.039085s] ... 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-b40b280a-ce45-4d75-973a-375251c27ab2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACProjectScoped.test_project_scoped_191_owner_admin_cannot_get_vendor_passthru_methods [0.069603s] ... 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-48955999-ff74-4dd8-bcf2-890c9c8e9da1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.040166s] ... 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-0953ea4f-7f14-4d38-8f7c-575968af2d66 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.040919s] ... 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-41a8fb82-3fb5-45bb-a8b0-a8a5405cbf48 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACProjectScoped.test_project_scoped_192_owner_manager_cannot_get_vendor_passthru_methods [0.070522s] ... 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-8ce02bdd-e577-48cd-be54-728704f64f11 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACBasic.test_basic_5_public_api [0.032017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9739fee8-296f-446d-9ded-2574ae30a1b3 {"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"}]} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.202969s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.033794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c20ee9eb-d349-4abb-8aa6-d87f089b60b1 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_service_cannot_get_vendor_passthru_methods [0.067956s] ... 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-343c4794-4a14-48ff-96f0-955ca58a54f8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.028507s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.033336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79fec699-f7e8-43d8-9536-299a8809c399 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"}]} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.025404s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_service [0.262304s] ... 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-4ba75257-ec04-45f7-b513-065ce66bc8c2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.028297s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.035830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8fa9d91d-8929-4b0a-bff9-464d6944759c 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_owner_member_cannot_get_vendor_passthru_methods [0.070225s] ... 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-5ff12668-416b-43e1-ab58-2582b3315e59 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.027241s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml [0.033576s] ... 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.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.022962s] ... ok {1} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.019506s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_targets_get_admin [0.074851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12ba92a4-e55c-4d87-8c3b-5401934da5f0 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"}]} {1} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.017352s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.029746s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_owner_reader_cannot_get_vendor_passthru_methods [0.074701s] ... 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-09697a35-600c-4d6b-8bea-345decf925b6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_functions.TestFunctionDefinition.test_signature [0.019013s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.029386s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.023714s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_volume_targets_get_member [0.069411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d01e7967-c097-43cf-b3cd-f9068cd7b9f4 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.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.023529s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.024612s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_admin_cannot_get_vendor_passthru_methods [0.069921s] ... 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-4e4d6301-c186-4663-a0dc-f20c957c7f19 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.025896s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.031861s] ... ok {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [0.022488s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_reader [0.069020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-279b0acb-b73e-48d5-bea0-184485a11dad 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.common.test_images.FsImageTestCase.test_create_vfat_image [0.024061s] ... ok {1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.035806s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_lessee_manager_cannot_get_vendor_passthru_methods [0.066578s] ... 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-84220aeb-8052-4ecb-83eb-0c01dd559234 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.021698s] ... ok {1} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.025856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9b81684-c6a3-4ad5-b98f-3f8b3acd0ca0 {"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"}]} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.020427s] ... ok {1} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.025316s] ... 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.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.019509s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_service [0.073689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-caa4cde5-d639-4f31-a2c3-1ab96ab41ec7 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.test_acl.TestRBACProjectScoped.test_project_scoped_198_lessee_member_cannot_get_vendor_passthru_methods [0.068207s] ... 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-53d35cf5-864b-4f47-8fdf-df99a643f407 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.019989s] ... ok {1} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.026565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-50a42581-4ef5-4e74-bb37-172c3757017f 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}"} {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.020010s] ... ok /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_bad_iso_qcow2 ... SKIPPED: qemu-img not installed or does not support qcow2 format {3} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.026560s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_lessee_reader_cannot_get_vendor_passthru_methods [0.064545s] ... 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-1cee6fa0-b945-4156-b280-8cb313f9a990 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_223_volume_targets_post_admin [0.077765s] ... 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/2e0f69c1-6176-4057-9cfa-4c03b57ba7fc Openstack-Request-Id: req-fc99b361-fd9d-4999-9f61-7f279394feae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2e0f69c1-6176-4057-9cfa-4c03b57ba7fc", "created_at": "2024-09-05T08:48:20.405360+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2e0f69c1-6176-4057-9cfa-4c03b57ba7fc", "rel": "self"}, {"href": "http://localhost/volume/targets/2e0f69c1-6176-4057-9cfa-4c03b57ba7fc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_from_file_reads_minimum ... SKIPPED: qemu-img not installed or does not support qcow2 format {3} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.056878s] ... ok /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: mkisofs: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_iso_9660 ... SKIPPED: mkisofs not installed {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_admin_cannot_get_vendor_passthru [0.064836s] ... 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-c8676b2a-973e-46ad-b99c-1ae15aba0df8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_224_volume_targets_post_member [0.078064s] ... 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/b740a7ec-b990-4019-b4c2-009737e57c51 Openstack-Request-Id: req-d7bae82a-499d-4bcc-8de5-a1e70306d39a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b740a7ec-b990-4019-b4c2-009737e57c51", "created_at": "2024-09-05T08:48:20.483859+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b740a7ec-b990-4019-b4c2-009737e57c51", "rel": "self"}, {"href": "http://localhost/volume/targets/b740a7ec-b990-4019-b4c2-009737e57c51", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: mkisofs: command not found {3} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.052138s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_iso_udf ... SKIPPED: mkisofs not installed {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_owner_manager_cannot_get_vendor_passthru [0.064413s] ... 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-3a0447b5-bfc8-46ef-aab4-ffb8d8e41bc1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.046348s] ... ok /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2 ... SKIPPED: qemu-img not installed or does not support qcow2 format {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_service [0.076000s] ... 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/b2f9f3f4-49e6-4a80-8468-57d772131210 Openstack-Request-Id: req-880dc432-9dc2-441f-bcf8-479163dd164a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b2f9f3f4-49e6-4a80-8468-57d772131210", "created_at": "2024-09-05T08:48:20.559964+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b2f9f3f4-49e6-4a80-8468-57d772131210", "rel": "self"}, {"href": "http://localhost/volume/targets/b2f9f3f4-49e6-4a80-8468-57d772131210", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2_feature_flag_checks [0.021251s] ... ok {3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.053262s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2_invalid [0.020929s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_owner_service_cannot_get_vendor_passthru [0.065886s] ... 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-e9ad1157-9c29-4eb8-87bd-b729b775c1d0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_service_project [0.073807s] ... 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/0507748f-4f69-4f70-a7c0-db74fec7400b Openstack-Request-Id: req-a8a829d1-a443-4c40-8c6e-1960382cbd9c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0507748f-4f69-4f70-a7c0-db74fec7400b", "created_at": "2024-09-05T08:48:20.635475+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0507748f-4f69-4f70-a7c0-db74fec7400b", "rel": "self"}, {"href": "http://localhost/volume/targets/0507748f-4f69-4f70-a7c0-db74fec7400b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qcow2_safety_checks ... SKIPPED: qemu-img not installed or does not support qcow2 format {3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.051135s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_owner_member_cannot_get_vendor_passthru [0.064298s] ... 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-51bceeaf-45cc-4449-8a9f-66efe50b8063 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_qed_always_unsafe ... SKIPPED: qemu-img not installed or does not support qed format {3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.049155s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service_project_disabled [0.069155s] ... 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-082ba5de-ec5f-4ccb-ad73-bc3d44d1bef8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vdi ... SKIPPED: qemu-img not installed or does not support vdi format {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_owner_reader_cannot_get_vendor_passthru [0.066985s] ... 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-3c30320b-6a9e-4ce8-b25b-93bc906078b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.056257s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vdi_invalid [0.034204s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project_admin [0.068858s] ... 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-6c06e7b0-c6e0-4563-bd38-f86a52be2355 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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) /bin/sh: line 1: qemu-img: command not found {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru [0.064540s] ... 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-a9895625-e0ad-421d-bb47-41e4954a25a8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_format_inspector.TestFormatInspectors.test_vhd ... SKIPPED: qemu-img not installed or does not support vpc format {3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.058594s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vhd_invalid [0.023690s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_reader [0.069240s] ... 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-6faec9be-bc0a-4b20-a3ab-5f60a7e7bf69 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_format_inspector.TestFormatInspectors.test_vhdx_invalid [0.020999s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_lessee_manager_cannot_get_vendor_passthru [0.065727s] ... 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-a587d1fa-b42c-4d76-8abf-dd4239a22559 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {3} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.069053s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk ... SKIPPED: qemu-img not installed or does not support vmdk format {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_volume_target_id_get_admin [0.068512s] ... 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-79ba3659-e179-4afb-b0c9-2b2d0cb94959 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": "2024-09-05T08:48:20.892478+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"} /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_lessee_member_cannot_get_vendor_passthru [0.065977s] ... 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-a8f3e402-4908-4847-bb4a-632a7580dba2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} 5+0 records in 5+0 records out 5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.0217849 s, 241 MB/s /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit [0.092375s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 410, in test_vmdk_bad_descriptor_mem_limit self._test_vmdk_bad_descriptor_mem_limit() File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 384, in _test_vmdk_bad_descriptor_mem_limit img = self._create_allocated_vmdk(image_size // units.Mi, File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 185, in _create_allocated_vmdk subprocess.check_output( File "/usr/lib64/python3.9/subprocess.py", line 424, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib64/python3.9/subprocess.py", line 528, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command 'qemu-img convert -f raw -O vmdk -o subformat=monolithicSparse -S 0 /tmp/tmpojfnmtgo/ironic-unittest-formatinspector--monolithicSparse-zrqwz8xo.raw /tmp/tmpojfnmtgo/ironic-unittest-formatinspector--monolithicSparse-6bs6vc0k.vmdk' returned non-zero exit status 127. {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_volume_target_id_get_member [0.071136s] ... 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-8e6b7c13-2b9b-40af-9257-376a4c1419f4 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": "2024-09-05T08:48:20.960035+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.104775s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_lessee_reader_cannot_get_vendor_passthru [0.065151s] ... 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-0b9ac637-a2a2-4c98-b4f7-0713552386c8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.021620s] ... ok /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.018684s] ... ok 5+0 records in 5+0 records out 5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.0215479 s, 243 MB/s {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.023791s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_reader [0.069500s] ... 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-be7da64b-3734-47ca-86b0-deaad25b4073 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": "2024-09-05T08:48:21.031014+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"} /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_owner_admin_cannot_post_vendor_passthru [0.064455s] ... 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-a9767160-26c5-4597-a1b6-c2c30ca3ac55 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit_stream_optimized [0.098839s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 413, in test_vmdk_bad_descriptor_mem_limit_stream_optimized self._test_vmdk_bad_descriptor_mem_limit(subformat='streamOptimized') File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 384, in _test_vmdk_bad_descriptor_mem_limit img = self._create_allocated_vmdk(image_size // units.Mi, File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 185, in _create_allocated_vmdk subprocess.check_output( File "/usr/lib64/python3.9/subprocess.py", line 424, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib64/python3.9/subprocess.py", line 528, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command 'qemu-img convert -f raw -O vmdk -o subformat=streamOptimized -S 0 /tmp/tmp17edyt0j/ironic-unittest-formatinspector--streamOptimized-1oa6qzjy.raw /tmp/tmp17edyt0j/ironic-unittest-formatinspector--streamOptimized-yqijm6oz.vmdk' returned non-zero exit status 127. {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.027198s] ... ok {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.019137s] ... ok /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.019250s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_offset ... SKIPPED: qemu-img not installed or does not support vmdk format {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_service [0.072767s] ... 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-4182808c-6243-45a5-aabf-10b277effc3f 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": "2024-09-05T08:48:21.103742+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_owner_manager_cannot_post_vendor_passthru [0.068268s] ... 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-a970430b-fc07-4667-a81d-ad654549b6dc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.021696s] ... ok /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_offset_stream_optimized ... SKIPPED: qemu-img not installed or does not support vmdk format {3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.018716s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_invalid [0.021077s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_owner_service_cannot_post_vendor_passthru [0.063374s] ... 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-415db1e5-4b0a-44db-9ffd-0cbebf4f23c6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.041049s] ... ok {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_invalid_type [0.022090s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_patch_admin [0.081185s] ... 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-c65ceef2-5ddc-47d0-b175-06c829c312b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.023344s] ... ok /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /bin/sh: line 1: qemu-img: command not found {1} ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_stream_optimized ... SKIPPED: qemu-img not installed or does not support vmdk format {3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.022032s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.020960s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.018167s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_owner_member_cannot_post_vendor_passthru [0.070010s] ... 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-669e4db0-df52-40a9-990a-b1045c32974c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_patch_reader [0.067719s] ... 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-48d0e114-71d0-46af-adcd-add47feb11bd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.018316s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.027035s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.019009s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.019498s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.018567s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.018590s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_reader_cannot_post_vendor_passthru [0.067167s] ... 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-e32b9f84-49e0-4d15-96bd-8351c375efc7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_fsm.FSMTest.test_is_stable_not [0.018608s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.019567s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_service [0.076932s] ... 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-e8ddc61c-fa03-4ee5-9372-a451f0fc6c03 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_fsm.FSMTest.test_process_event [0.018933s] ... ok {3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_and_fails [0.022758s] ... ok {1} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.018483s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.017789s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_lessee_admin_cannot_post_vendor_passthru [0.066981s] ... 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-117d2265-2c6e-401f-9e3f-9765ca9f2e8a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.030070s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.019513s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.018445s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_delete_admin [0.071408s] ... 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-9aa6aba4-ef76-45c8-acf6-571e8e6b3f4f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.020997s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.021488s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.020361s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.022138s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_lessee_manager_cannot_post_vendor_passthru [0.067860s] ... 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-bedbf2d3-d74b-4450-b834-5021586a96a6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.022099s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.033670s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_delete_member [0.069199s] ... 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-7fcb3ed1-e5fd-4bcc-b3f7-8c8a39e1f40f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled [0.025106s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.030979s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.019044s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_lessee_member_cannot_post_vendor_passthru [0.066893s] ... 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-391b1d0c-77c5-456f-b036-0f53222ab1d2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.028593s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.023996s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_delete_reader [0.063413s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-05205c7f-6bf5-4c08-8bd6-dd0617b1fb7c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.018967s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.028843s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.017331s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_reader_cannot_post_vendor_passthru [0.067502s] ... 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-9ce53672-ecd9-45a2-98e0-8e25940f5f13 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.030671s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_volume_volume_target_id_delete_service [0.068821s] ... 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-2c660684-80db-4944-912e-4d29064f39d2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.033003s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_owner_admin_cannot_put_vendor_passthru [0.063909s] ... 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-77ba3d61-d471-457a-bc77-fece3d83922b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.029660s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_nodes_volume_get_admin [0.061645s] ... 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-09c0a587-219d-4b38-8adb-ca4dc9ef9b5f 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"}]} {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.029507s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.027722s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_owner_manager_cannot_put_vendor_passthru [0.064172s] ... 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-61cfa8e7-36cf-49fc-bbbe-ecad9bbe315e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_242_nodes_volume_get_member [0.060955s] ... 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-7ce4f66f-9fa1-4a1e-8c65-6a1a0af8e982 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"}]} {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.027834s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.020227s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_put_vendor_passthru [0.065834s] ... 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-fe4a3808-a522-4e8e-84f3-5414455870c0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.214431s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_nodes_volume_get_reader [0.061629s] ... 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-bafffade-9706-48d6-8aa6-8096535ceee0 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"}]} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.040549s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.019679s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.018332s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.017423s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_member_cannot_put_vendor_passthru [0.067462s] ... 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-71448db0-f51a-453d-a084-12c40f0781b7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.019089s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_nodes_volume_connectors_get_admin [0.073036s] ... 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-932b39c7-61ed-4d33-b7e9-bd58665b33d0 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.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.018891s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.016953s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_put_vendor_passthru [0.066427s] ... 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-d3e3ea81-c816-487b-bb68-082f4a975fe4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.023628s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_nodes_volume_connectors_get_member [0.069727s] ... 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-6c13ec19-598c-498d-8805-a2bf9d9a446a 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.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.019778s] ... ok {3} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.017816s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_lessee_admin_cannot_put_vendor_passthru [0.065906s] ... 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-e413e730-3bd2-4ca3-8eed-6066d5943f23 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.044980s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_connectors_get_reader [0.070545s] ... 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-cc81293b-e4fa-47f4-9601-c4f9ecedec03 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"}]} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.240092s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_put_vendor_passthru [0.064933s] ... 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-81cb715e-5de8-469e-b209-41a080853684 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.052585s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.034469s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_targets_get_admin [0.071850s] ... 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-f5009f7b-81d0-4d5d-9e6d-b4eea56ab424 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.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.028590s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.033949s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_lessee_member_cannot_put_vendor_passthru [0.066204s] ... 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-e9112a51-cf46-46f6-902f-5f5c0d5ad7e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.047459s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.032102s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_nodes_volume_targets_get_member [0.069855s] ... 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-67ecb53b-5036-4d7c-8ead-3168e90b03f7 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"}]} {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.028548s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_lessee_reader_cannot_put_vendor_passthru [0.065457s] ... 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-0c5f8d43-3d08-45e8-912e-ce3c4f22de68 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.048195s] ... ok {1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.023375s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_nodes_volume_targets_get_reader [0.071483s] ... 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-4aaf599e-8da5-46bd-9042-f45f59eef8a3 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"}]} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.048045s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.066234s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_owner_admin_cannot_delete_vendor_passthru [0.081288s] ... 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-34bdbafa-14b7-419e-8dc9-00561ea64e80 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.045235s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_drivers_get_admin [0.075678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7fa9297-e957-4ab5-bff3-86674aff2bae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"drivers": []} {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.058021s] ... ok {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.045077s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_drivers_get_member [0.059304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7e55fc0-7c18-48f2-bcb4-0476445d684a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"drivers": []} {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.052858s] ... ok {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.045967s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.050215s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_drivers_get_reader [0.061183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bdde3cb7-a64f-466c-ace2-0b3b211507a5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"drivers": []} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.045857s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.049956s] ... ok {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json [0.041376s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_drivers_driver_name_get_admin [0.061427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f14d01cb-eb18-4072-8c89-2856388dff40 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_owner_manager_cannot_delete_vendor_passthru [0.233116s] ... 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-4974e640-6599-4454-b337-e58736ea10a9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [0.039944s] ... ok {3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.053393s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_driver_name_get_member [0.061236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c40a4d20-ecdf-4beb-befd-c4da694ad2c8 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.044335s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_229_owner_service_cannot_delete_vendor_passthru [0.063812s] ... 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-719a200a-2144-48c0-9966-d7ac8b10cf3d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.074382s] ... ok {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.045674s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_driver_name_get_reader [0.063161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-39678ce8-8ab9-4d2a-a6b5-5dc9de0906ae X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_owner_member_cannot_delete_vendor_passthru [0.061973s] ... 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-8765687e-a334-4b8e-a221-8e805c2fb4a9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error [0.043442s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.064434s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_reader_cannot_delete_vendor_passthru [0.061921s] ... 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-ad184de2-c49e-4416-9d5e-87cc65e725d0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.043947s] ... ok {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http [0.040537s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.083537s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_lessee_admin_cannot_delete_vendor_passthru [0.062644s] ... 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-3717b2a8-ae3c-489b-9e91-b1450aab23d5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error [0.043752s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.055322s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_delete_vendor_passthru [0.061496s] ... 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-3663f575-eb5a-442b-9cc2-cb9692340849 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.041437s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_properties_get_admin [0.231823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4fefce08-3133-4962-95a4-fa801925b0ed X-Openstack-Ironic-Api-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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift [0.043654s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_member_cannot_delete_vendor_passthru [0.063265s] ... 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-b49a2623-fb88-4e26-bb38-401d0185b7ae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.081089s] ... ok {1} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.042841s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_drivers_properties_get_member [0.061525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-10c38981-d7ec-47f0-8f89-a1cd2cb48b97 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.031006s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_delete_vendor_passthru [0.063600s] ... 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-43196693-81d0-4609-8d4b-ef04d70e5f6d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.031653s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_drivers_properties_get_reader [0.062180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8b955b22-5124-4e50-b916-a5e2ce0332cf X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.092749s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.030578s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_owner_reader_get_traits [0.065788s] ... 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-26953747-3e24-42d1-864a-903acab98917 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"traits": []} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.054029s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_drivers_raid_logical_disk_properties_get_admin [0.060872s] ... 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-f0193418-c7dc-4655-9917-1f968cf1bb96 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.054276s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_lessee_reader_get_traits [0.065492s] ... 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-4caaae69-116a-481e-bba5-7dea45b154b4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"traits": []} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.061415s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_drivers_raid_logical_disk_properties_get_member [0.060880s] ... 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-f49d88d4-16c1-430e-ba48-ad7d4720afab X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.066400s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_third_party_admin_cannot_get_traits [0.062642s] ... 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-d91e0456-c753-47a5-8fbe-f2614603984b X-Openstack-Ironic-Api-Maximum-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.061221s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_drivers_raid_logical_disk_properties_get_reader [0.061711s] ... 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-4c033f98-4528-4a7f-896f-d827edd535f7 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.053185s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_admin_can_put_traits [0.068005s] ... 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-43869c6b-fba7-48bf-8c88-a46f7be92734 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_262_drivers_vendor_passthru_methods_get_admin [0.068403s] ... 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-13fd0d05-0a5b-4cc2-ba45-7f0f2182aae6 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.055592s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.083219s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_manager_can_put_traits [0.069029s] ... 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-a3bf38f3-5283-46e6-a7fb-023fcb297e1f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_263_drivers_vendor_passthru_methods_get_member [0.063654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8f6435de-23dc-47a0-8143-2dc1cc389b2e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.055692s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.068402s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_owner_service_can_put_traits [0.069028s] ... 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-a9830de9-55c7-4c43-a5c7-d24258ee1ac0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_264_drivers_vendor_passthru_methods_get_reader [0.062362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4c7b22b7-badc-4561-b6b3-9e2f8ee70f38 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.069006s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.076711s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_drivers_vendor_passthru_get_admin [0.061891s] ... 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-93536cce-f35a-46c7-a522-897bd8c9e8a9 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_owner_member_cannot_put_traits [0.066502s] ... 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-84a23e95-a592-4340-af49-df178e31eb97 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.058780s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.060353s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_get_member [0.059331s] ... 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-4b580492-830a-47f6-b893-6450da997e01 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_admin_cannot_put_traits [0.068774s] ... 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-15848d6f-6e11-4515-a08b-150bc54d23ca X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.058147s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.067128s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_drivers_vendor_passthru_get_reader [0.058335s] ... 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-b72f9d65-95ae-494a-800c-4aed54c49b89 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.055677s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_manager_cannot_put_traits [0.067862s] ... 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-574fd76d-2c72-4e13-b38e-c9233026e2db X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.063054s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_post_admin [0.061169s] ... 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-8077425c-d5a0-4fcc-baab-7621dffc550a X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.058097s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_lessee_member_cannot_put_traits [0.067445s] ... 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-9d728484-924f-45f2-b290-2151bad8a272 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.072756s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_drivers_vendor_passthru_post_member [0.059008s] ... 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-2ca4a62e-ff96-447d-ba2f-a9752faa3c49 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.066359s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.051606s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_third_party_admin_cannot_put_traits [0.068509s] ... 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-906f6085-443a-42ea-9a1c-1c74e5f85465 X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_post_reader [0.058254s] ... 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-86024e4f-ab1a-42e3-94dd-f890b61caa32 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data [0.033592s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.063073s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_owner_admin_can_delete_traits [0.064483s] ... 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-18282999-2a94-4d59-81b7-c7fbd64dbe7c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.038977s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_drivers_vendor_passthru_put_admin [0.063500s] ... 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-ac3023d6-5082-4eab-b9e6-3662e42c0e1b X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.064844s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.048006s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_owner_manager_can_delete_traits [0.063762s] ... 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-7882c21c-4cd8-4133-8ddc-f8026c80e52f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.029674s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_drivers_vendor_passthru_put_member [0.059103s] ... 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-43413449-cfec-4f43-a524-11ca48c58221 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.029906s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.074501s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_member_cannot_delete_traits [0.064268s] ... 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-2d31ca09-c178-4dc3-9b37-3a1fad556fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_put_reader [0.058709s] ... 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-eb1ac0c9-e75d-43cb-951e-950983d02fa1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.046411s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.071570s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_lessee_admin_cannot_delete_traits [0.064162s] ... 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-44361b60-b283-4994-9a4f-f9ccc9809604 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.046975s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_delete_admin [0.063971s] ... 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-73526177-3e0f-4140-97ea-3a46b33c98e5 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.057334s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.046715s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_lessee_manager_cannot_delete_traits [0.064346s] ... 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-8ed5e374-eece-42d1-8ecd-0eef73e8ddfc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_drivers_vendor_passthru_delete_reader [0.057876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a63ef118-9421-4c09-8006-9119e01dfdd2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.047793s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.071214s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_lessee_member_cannot_delete_traits [0.064566s] ... 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-fd6d25fb-9cb4-49fa-b933-b588dfff1369 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_nodes_bios_get_admin [0.067736s] ... 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-739ac3e0-328f-4c8f-810b-b3e7c062a524 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": "2024-09-05T08:48:24.085045+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"}]}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.051940s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_third_party_admin_cannot_delete_traits [0.064557s] ... 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-8fbd4f5b-3bfd-495b-90dc-449dca1ac6d3 X-Openstack-Ironic-Api-Maximum-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.073585s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.048615s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_nodes_bios_get_member [0.078983s] ... 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-0f67aee9-1af4-4216-80e8-abcb778494bc 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": "2024-09-05T08:48:24.163250+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"}]}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.050657s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.061635s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_owner_admin_can_put_custom_traits [0.068443s] ... 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-d7e86327-da28-45f4-8bc8-06b50912a1ad X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_278_nodes_bios_get_reader [0.068982s] ... 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-a70fd240-1d06-4fed-8413-236c8f9402a3 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": "2024-09-05T08:48:24.234770+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"}]}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.051783s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.068935s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_owner_manager_can_put_custom_traits [0.068966s] ... 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-e49525d9-b4c6-46bc-8d52-8a4bbb3fd990 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.046206s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_nodes_bios_bios_setting_get_admin [0.069741s] ... 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-50eac16b-d831-44b3-9896-50dba758434d 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": "2024-09-05T08:48:24.304123+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.064636s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_owner_member_cannot_put_custom_traits [0.067067s] ... 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-2c56c7f8-5289-46db-8acb-46d5704a1302 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.052406s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_nodes_bios_bios_setting_get_member [0.068122s] ... 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-06cac5f6-55d9-42df-b28d-599a2fb4868f 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": "2024-09-05T08:48:24.371676+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"}]}} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.031855s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.058873s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.031052s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_257_lessee_admin_cannot_put_custom_traits [0.074135s] ... 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-d43e2316-2c51-4fb3-b89c-df17713b70d8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_bios_setting_get_reader [0.066383s] ... 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-e00572d7-7761-4e25-b20e-2ec9fb16ad37 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": "2024-09-05T08:48:24.441062+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.094616s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_conductors_get_admin [0.060206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea17a5bb-1ea6-459b-a067-77420b43a364 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_258_lessee_manager_cannot_put_custom_traits [0.079957s] ... 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-821a83ff-ca49-4654-b637-a707f296603c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.059516s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_conductors_get_member [0.059034s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dccbec29-0a21-4e21-9f0d-39069b085e76 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_259_lessee_member_cannot_put_custom_traits [0.079047s] ... 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-bb626ed2-6bae-48a4-a575-4d25bab2e2b6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.056468s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_conductors_get_reader [0.059977s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e734487-8963-431c-a9a3-8e69c79a6901 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}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.225900s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_third_party_admin_cannot_put_custom_traits [0.078429s] ... 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-e7047ded-65a2-4dc7-aeb4-9a3da751543f X-Openstack-Ironic-Api-Maximum-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.061251s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_conductors_hostname_get_admin [0.061779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-edac0562-465a-4023-b561-c16e40dde4ac 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": "2024-09-05T08:48:24.684625+00:00", "updated_at": "2024-09-05T08:48:24.685328+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.043843s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_261_owner_reader_get_vifs [0.074410s] ... 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-fa29c220-131b-422d-8da9-8beb9fdbe841 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.052468s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_conductors_hostname_get_member [0.061154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94399255-540c-4413-ae52-e973b3aedad2 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": "2024-09-05T08:48:24.745380+00:00", "updated_at": "2024-09-05T08:48:24.746053+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.041700s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_hostname_get_reader [0.058775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-314599e6-dc9f-4e7c-89c5-e6631c2b4d9b 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": "2024-09-05T08:48:24.806622+00:00", "updated_at": "2024-09-05T08:48:24.807374+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_reader_get_vifs [0.073444s] ... 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-885fbaf9-333c-4a5f-8a7f-5db4d4076a6d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.040830s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged [0.043954s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_allocations_post_admin [0.066170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-81eac645-a4a2-401b-831e-729328ff3976 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_third_party_admin_cannot_get_vifs [0.069484s] ... 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-6e6c114c-6cf2-4edf-91bd-28765e21c3d7 X-Openstack-Ironic-Api-Maximum-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_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.044411s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.242632s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_allocations_post_member [0.065648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-af5ffaa2-75c1-444f-b7bf-9f9dc11571fe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.043878s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.078406s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.045486s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_allocations_post_reader [0.066826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-495b2869-4718-49bd-b3e8-af71498eaecb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.028433s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.056382s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.028850s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_allocations_get_admin [0.065332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f954026-5702-432e-9523-dc77b682f391 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": "b528e5b4-ed16-4cc6-9dd2-175968183bf0", "created_at": "2024-09-05T08:48:25.055524+00:00", "updated_at": "2024-09-05T08:48:25.062018+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/b528e5b4-ed16-4cc6-9dd2-175968183bf0", "rel": "self"}, {"href": "http://localhost/allocations/b528e5b4-ed16-4cc6-9dd2-175968183bf0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.028793s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.057512s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.029166s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_allocations_get_member [0.064921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa284a92-c9da-410b-a04c-799db4ab389a 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": "011f91d2-ec2e-4b07-b9e6-5acc198b9aef", "created_at": "2024-09-05T08:48:25.122618+00:00", "updated_at": "2024-09-05T08:48:25.126800+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/011f91d2-ec2e-4b07-b9e6-5acc198b9aef", "rel": "self"}, {"href": "http://localhost/allocations/011f91d2-ec2e-4b07-b9e6-5acc198b9aef", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.027523s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.055772s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.028654s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.029916s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.062066s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.029847s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.028298s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.053266s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.029693s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_owner_admin_can_post_vifs [0.434383s] ... 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-feafcaa4-61a8-45ee-986d-6f685bb7ab46 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.029461s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.029013s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_get_reader [0.227744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc5a5024-09eb-4c5a-9003-633a98958d0d 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": "4514bb4c-cfd9-4a72-817c-836253fef684", "created_at": "2024-09-05T08:48:25.351737+00:00", "updated_at": "2024-09-05T08:48:25.355929+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/4514bb4c-cfd9-4a72-817c-836253fef684", "rel": "self"}, {"href": "http://localhost/allocations/4514bb4c-cfd9-4a72-817c-836253fef684", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.093841s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.029431s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_265_service_can_post_vifs_for_own_project [0.075746s] ... 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-bd8c8e99-1ac8-4699-8bd2-9384fdf85038 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.023400s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_allocations_allocation_id_get_admin [0.063619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/0604fcbe-7aa6-4f57-be5d-102425c44e1a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-33346a28-620d-4a01-947e-f9a7308f2059 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0604fcbe-7aa6-4f57-be5d-102425c44e1a", "created_at": "2024-09-05T08:48:25.415661+00:00", "updated_at": "2024-09-05T08:48:25.419725+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/0604fcbe-7aa6-4f57-be5d-102425c44e1a", "rel": "self"}, {"href": "http://localhost/allocations/0604fcbe-7aa6-4f57-be5d-102425c44e1a", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.023290s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail [0.059217s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.023976s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_service_cannot_post_vifs_for_other_project [0.077492s] ... 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-c3983286-b501-46d6-adc0-3fb72e4170f3 X-Openstack-Ironic-Api-Maximum-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_nova.NovaApiTestCase.test_power_update_3 [0.023093s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean [0.043621s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_allocations_allocation_id_get_member [0.066486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/c7d73e1d-6e19-41f5-ab7b-2f0c7e59aa2a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b069a44-8f9f-410c-8508-dd94c1fad89d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c7d73e1d-6e19-41f5-ab7b-2f0c7e59aa2a", "created_at": "2024-09-05T08:48:25.482354+00:00", "updated_at": "2024-09-05T08:48:25.486679+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/c7d73e1d-6e19-41f5-ab7b-2f0c7e59aa2a", "rel": "self"}, {"href": "http://localhost/allocations/c7d73e1d-6e19-41f5-ab7b-2f0c7e59aa2a", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.023745s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.041895s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 [0.024182s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_manager_can_post_vifs [0.076818s] ... 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-8e555ac9-d0e3-4579-8d94-971a3de4133d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_nova.NovaApiTestCase.test_power_update_failed [0.026276s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_allocation_id_get_reader [0.066300s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d2411483-16de-41ba-be2e-b9376205c841 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-460ad454-4779-4b7c-a070-70e0a1dd1a44 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "d2411483-16de-41ba-be2e-b9376205c841", "created_at": "2024-09-05T08:48:25.547426+00:00", "updated_at": "2024-09-05T08:48:25.552565+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/d2411483-16de-41ba-be2e-b9376205c841", "rel": "self"}, {"href": "http://localhost/allocations/d2411483-16de-41ba-be2e-b9376205c841", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.023334s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.061678s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.023639s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.023065s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_can_post_vifs [0.077921s] ... 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-4136862d-67bb-44a4-b55d-93610228d0d9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_297_allocations_allocation_id_patch_admin [0.075958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9445b159-79cd-4d7c-92b9-c5b6f05d5a95 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0f341f7-533d-4dcc-8107-a93528200ec7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "9445b159-79cd-4d7c-92b9-c5b6f05d5a95", "created_at": "2024-09-05T08:48:25.614539+00:00", "updated_at": "2024-09-05T08:48:25.656516+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/9445b159-79cd-4d7c-92b9-c5b6f05d5a95", "rel": "self"}, {"href": "http://localhost/allocations/9445b159-79cd-4d7c-92b9-c5b6f05d5a95", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.023114s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.081970s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.024131s] ... ok {1} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.023559s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_can_post_vifs [0.073927s] ... 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-6b9f8dd8-ae16-4ece-b187-86308a4a01ee X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.018896s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_allocations_allocation_id_patch_member [0.077546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/2a9cf8e3-e105-46cc-97b9-0dc6d0c7bc96 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e5d7a0f-be20-4086-8b60-072f0e68ea04 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2a9cf8e3-e105-46cc-97b9-0dc6d0c7bc96", "created_at": "2024-09-05T08:48:25.690374+00:00", "updated_at": "2024-09-05T08:48:25.733663+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/2a9cf8e3-e105-46cc-97b9-0dc6d0c7bc96", "rel": "self"}, {"href": "http://localhost/allocations/2a9cf8e3-e105-46cc-97b9-0dc6d0c7bc96", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.056995s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.019718s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.018870s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.016742s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_allocations_allocation_id_patch_reader [0.065369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/458b5a4b-e3ee-4fa3-8a73-dc0efc25aebb WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-438dd136-c9cb-4a3f-9431-1efc09bf4df8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_owner_member_can_post_vifs [0.075995s] ... 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-0e9a57c5-c10f-4b41-bd2d-9b94cc806714 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs [0.079951s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.035073s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.035541s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_allocations_allocation_id_delete_admin [0.063348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/70543392-779e-4d51-80d4-d2a8f7c7f2a0 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8943e572-a635-4364-b0f7-aae9bfea5a38 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.056279s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_lessee_member_cannot_post_vifs [0.078691s] ... 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-236559df-0c9b-4699-ba75-bd80cbe9e526 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.037231s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_allocations_allocation_id_delete_member [0.063204s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/87ef67fc-2167-46af-accb-5f5a70da8c6e GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cc4ae4a2-47f2-4eb6-b6fc-da368f846411 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.055693s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.039833s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_cannot_post_vifs [0.078800s] ... 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-4b346304-4345-4ff7-81fc-04d18e05f6c2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.037107s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.054467s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_delete_reader [0.061749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/83815aad-a240-4da2-82f2-1637e0f318d2 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d2868ed6-670c-44ae-b8aa-5e22b4f98979 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.042699s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_cannot_post_vifs [0.074157s] ... 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-6bceef1c-df5b-4b46-b874-5bc96c1cf98f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.032503s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_nodes_allocation_get_admin [0.066543s] ... 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-a2f26d5f-fe63-408d-a23b-b484eae7641b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "299b8587-d88c-45fd-82d9-9347cf39a611", "created_at": "2024-09-05T08:48:26.024052+00:00", "updated_at": "2024-09-05T08:48:26.028508+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/299b8587-d88c-45fd-82d9-9347cf39a611", "rel": "self"}, {"href": "http://localhost/allocations/299b8587-d88c-45fd-82d9-9347cf39a611", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.082553s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.031335s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.029320s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_post_vifs [0.081245s] ... 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-b5d922d0-1b82-49ef-be6c-1c1a43782a2f X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_304_nodes_allocation_get_member [0.069440s] ... 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-32b47634-ddf9-455e-bbfa-6293533a62c7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "7c84503f-d350-458f-977c-6b323a83ee67", "created_at": "2024-09-05T08:48:26.092223+00:00", "updated_at": "2024-09-05T08:48:26.096823+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/7c84503f-d350-458f-977c-6b323a83ee67", "rel": "self"}, {"href": "http://localhost/allocations/7c84503f-d350-458f-977c-6b323a83ee67", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.025692s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.082814s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.024968s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.022702s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_305_nodes_allocation_get_reader [0.068963s] ... 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-4ac8fe8a-c402-42f9-a227-f693f1f66109 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ec6d3ce0-a648-4963-af27-8a5e04082fb3", "created_at": "2024-09-05T08:48:26.160684+00:00", "updated_at": "2024-09-05T08:48:26.165142+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/ec6d3ce0-a648-4963-af27-8a5e04082fb3", "rel": "self"}, {"href": "http://localhost/allocations/ec6d3ce0-a648-4963-af27-8a5e04082fb3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_admin_delete_vifs [0.084919s] ... 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-66ef302d-de7a-4873-98be-a43d68087101 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.058988s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.029334s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.025744s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.022394s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_306_nodes_allocation_delete_admin [0.067623s] ... 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-a1592aa9-33ea-4e84-88f4-071f9dc675de X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.057064s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_owner_manager_delete_vifs [0.081078s] ... 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-a7071210-5127-4604-a3ae-8bd58fd01149 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.023066s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.021893s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.056853s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.023534s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_307_nodes_allocation_delete_member [0.070967s] ... 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-4a64ad60-c1b9-4f83-a896-faedd7166a44 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_lessee_admin_can_delete_vifs [0.071285s] ... 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-2321489e-9f6c-425b-ae78-6250117c9a36 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_308_nodes_allocation_delete_reader [0.063164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4dd43212-e20f-4174-933a-4f0f70cccb8b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.063239s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.028122s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.033879s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.033370s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.056822s] ... ok {1} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.034843s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_309_deploy_templates_post_admin [0.069639s] ... 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/2a7e013d-c148-4c95-b254-18f7327283c8 Openstack-Request-Id: req-a888ad5e-6603-42fb-9d6d-89a00f233e51 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2a7e013d-c148-4c95-b254-18f7327283c8", "created_at": "2024-09-05T08:48:26.473777+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2a7e013d-c148-4c95-b254-18f7327283c8", "rel": "self"}, {"href": "http://localhost/deploy_templates/2a7e013d-c148-4c95-b254-18f7327283c8", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_lessee_manager_can_delete_vifs [0.122101s] ... 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-00496b10-cbd5-42bc-a185-6d654fdaf1a6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.032918s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.017557s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.075106s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.017070s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_deploy_templates_post_member [0.067046s] ... 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-6503e2c7-b427-40b0-80f4-f24560cc84c6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.016253s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_owner_member_can_delete_vifs [0.071166s] ... 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-4816ddba-9a2f-46a4-9569-c99d144e965f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.016320s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.016190s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.016170s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_deploy_templates_post_reader [0.067093s] ... 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-2e27fdd7-bfbd-49ac-bab5-f1e51eb20f0d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.016208s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_lessee_member_cannot_delete_vifs [0.073375s] ... 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-1311e1d3-b63f-4466-b131-83489f599c9f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.016910s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions [0.016582s] ... ok {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.016750s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_deploy_templates_get_admin [0.062081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e0c55b1c-3023-42f0-8d7a-9ba088b6d2d2 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": "ce05c7dd-7bc8-4c40-a7aa-25353739ff9e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ce05c7dd-7bc8-4c40-a7aa-25353739ff9e", "rel": "self"}, {"href": "http://localhost/deploy_templates/ce05c7dd-7bc8-4c40-a7aa-25353739ff9e", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.020683s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_third_party_admin_cannot_delete_vifs [0.073647s] ... 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-d427ae71-1453-4ec5-95d9-b1db991018bf X-Openstack-Ironic-Api-Maximum-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_release_mappings.ReleaseMappingsTestCase.test_structure [0.020702s] ... ok {1} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.017382s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_deploy_templates_get_member [0.063031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-358b01b2-16b5-461c-b904-e9760f42df13 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": "2b919fa7-3d63-4f28-a493-18baa70d55f6", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/2b919fa7-3d63-4f28-a493-18baa70d55f6", "rel": "self"}, {"href": "http://localhost/deploy_templates/2b919fa7-3d63-4f28-a493-18baa70d55f6", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.217692s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_service_can_delete_vifs [0.071038s] ... 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-4a99bc13-89aa-4c20-9734-a49346845acd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_314_deploy_templates_get_reader [0.060285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71d8fce5-6dc5-4a4c-89ae-122c082e12b9 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": "b4ed10eb-42b2-4281-a541-d56092268628", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b4ed10eb-42b2-4281-a541-d56092268628", "rel": "self"}, {"href": "http://localhost/deploy_templates/b4ed10eb-42b2-4281-a541-d56092268628", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_service_cannot_delete_other_nodes_vifs [0.070005s] ... 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-49bfc464-0572-4ac7-9cac-9cb9f03d708d X-Openstack-Ironic-Api-Maximum-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.TestRBACScopedRequests.test_system_scoped_315_deploy_templates_deploy_template_id_get_admin [0.059828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/1e0dc0d3-81e2-4a70-8616-9f73d50d81f8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f6db72f0-0f37-42d5-94fc-008ebe5f97ca X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1e0dc0d3-81e2-4a70-8616-9f73d50d81f8", "created_at": "2024-09-05T08:48:26.836376+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1e0dc0d3-81e2-4a70-8616-9f73d50d81f8", "rel": "self"}, {"href": "http://localhost/deploy_templates/1e0dc0d3-81e2-4a70-8616-9f73d50d81f8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.122136s] ... ok {3} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.043516s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_316_deploy_templates_deploy_template_id_get_member [0.059728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/1678af5f-7274-4b4e-a31a-89f7ee6a84e5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8a22557-4f93-4ab4-9c7c-da545983ab18 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1678af5f-7274-4b4e-a31a-89f7ee6a84e5", "created_at": "2024-09-05T08:48:26.896745+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1678af5f-7274-4b4e-a31a-89f7ee6a84e5", "rel": "self"}, {"href": "http://localhost/deploy_templates/1678af5f-7274-4b4e-a31a-89f7ee6a84e5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_owner_readers_can_get_indicators [0.072855s] ... 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-db37854a-08db-4844-a909-1853492714d0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.045871s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_deploy_template_id_get_reader [0.059407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/fc73bc3e-f2cd-4ee4-a22a-7c0afbd61cd4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-01e05522-9347-488a-a463-44404596417e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "fc73bc3e-f2cd-4ee4-a22a-7c0afbd61cd4", "created_at": "2024-09-05T08:48:26.955894+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fc73bc3e-f2cd-4ee4-a22a-7c0afbd61cd4", "rel": "self"}, {"href": "http://localhost/deploy_templates/fc73bc3e-f2cd-4ee4-a22a-7c0afbd61cd4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_lesse_readers_can_get_indicators [0.069124s] ... 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-cde7bd4f-709a-4562-be75-e38e004a8a2d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.046110s] ... ok {3} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.041520s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_deploy_template_id_patch_admin [0.083359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/3c033274-9c2c-4acc-a4ce-335f11b284cc WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d64cdc3-e0d6-4e8d-8ed8-0e799da0f872 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "3c033274-9c2c-4acc-a4ce-335f11b284cc", "created_at": "2024-09-05T08:48:27.019501+00:00", "updated_at": "2024-09-05T08:48:27.058375+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3c033274-9c2c-4acc-a4ce-335f11b284cc", "rel": "self"}, {"href": "http://localhost/deploy_templates/3c033274-9c2c-4acc-a4ce-335f11b284cc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_third_party_admin_cannot_get_indicators [0.069819s] ... 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-b9713aff-1441-49ec-8cbc-6ab878231dab X-Openstack-Ironic-Api-Maximum-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.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.046360s] ... ok {2} 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. {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_deploy_template_id_patch_member [0.061346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e96121d4-c833-430f-9fab-70f4c8446ba9 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-048abec7-6199-4065-98c2-22f9379a66cc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.043442s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.032085s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_patch_reader [0.062603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/94efc31a-1851-432f-8616-c48bda2c0f54 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0e4855af-a556-4d83-be8f-e25ecc6d6959 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.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. {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [0.045269s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.507095s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_delete_admin [0.062340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/a88fb6be-5e6f-44f5-9b01-370cf9b45ce9 GOT Response: 204 No Content Openstack-Request-Id: req-62f44f88-2b73-410f-a5d3-87000a06e7eb 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.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.036021s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_owner_member_can_set_indicator [0.072173s] ... 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-e9fe9e96-1a00-4f3c-bda5-d866df7a2304 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.044024s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_delete_member [0.057812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/33863504-62c6-4ccf-a5d2-0f7700d4fdec GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b55ad55d-628a-4e25-98f7-633ccb87ec5b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_lessee_member_cannot_set_indicator [0.068107s] ... 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-a3d18d38-ecdf-486c-bf5a-9258c54ba4d8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.037763s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_delete_reader [0.056787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/5fd3b8da-05d6-4c08-8309-2f17657d50c0 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1bd73e8e-4efe-4c38-8a57-459a7708a79a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.042737s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_set_indicator [0.067710s] ... 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-aa5c17e2-4578-497a-b034-13f0233050e4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestRBACScopedRequests.test_system_scoped_324_chassis_post_admin [0.062276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/4185408e-547d-4a68-b32d-b83dde491fbf Openstack-Request-Id: req-c53cc7f0-1dbb-4dee-9493-badc770f4055 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "4185408e-547d-4a68-b32d-b83dde491fbf", "created_at": "2024-09-05T08:48:27.426683+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/4185408e-547d-4a68-b32d-b83dde491fbf", "rel": "self"}, {"href": "http://localhost/chassis/4185408e-547d-4a68-b32d-b83dde491fbf", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/4185408e-547d-4a68-b32d-b83dde491fbf/nodes", "rel": "self"}, {"href": "http://localhost/chassis/4185408e-547d-4a68-b32d-b83dde491fbf/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_owner_reader_can_list_portgroups [0.070318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a66209c-8842-4ebb-94eb-d62cb724255b 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"}]}]} {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current [0.107206s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_325_chassis_post_member [0.059714s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-468c2233-07d3-405e-aa13-635e9476753f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_owner_service_can_list_portgroups [0.068024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9352f987-5099-48e4-9484-3aa115e32872 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_326_chassis_post_reader [0.059684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b57822ba-3ad0-44cf-b992-849553cc85e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [0.326066s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.099468s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_lessee_reader_can_list_portgroups [0.068848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23ca5f57-2e18-4bea-abf5-99a56452e767 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.TestRBACScopedRequests.test_system_scoped_327_chassis_get_admin [0.059848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8cbe3d0f-e011-41e8-9988-8486fb6d8b94 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"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_chassis_get_member [0.064986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d2d7d4b-4e25-4213-b438-21f680aa0ece 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.test_acl.TestRBACProjectScoped.test_project_scoped_295_third_party_admin_cannot_list_portgroups [0.066430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef152d67-a3cc-4a3a-9a25-ac43673ceda2 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.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.109487s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_get_reader [0.059299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d8bf166-bf3d-4c66-b72f-ce754809301e 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.test_acl.TestRBACProjectScoped.test_project_scoped_296_owner_reader_can_read_portgroup [0.072465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53e20ca1-2d27-4942-92a9-45689c46b7c8 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": "2024-09-05T08:48:27.711882+00:00", "updated_at": null, "address": "01:03:09:ff:01:01", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "magicfoo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.081989s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_get_service [0.058563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a9910be-1d0c-4fbc-ade2-ec21f5019b62 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.test_acl.TestRBACProjectScoped.test_project_scoped_297_lessee_reader_can_read_portgroup [0.071770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d8a3d45-5045-4a16-8e51-39808f3cdda3 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": "2024-09-05T08:48:27.792539+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"}]} {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.093752s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_third_party_admin_cannot_read_portgroup [0.069460s] ... 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-57fcc96c-be08-44c5-8443-b2c205b3b5fe X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_admin_can_add_portgroup [0.074633s] ... 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/ab8717d6-8e10-4c1a-9b0d-09d7550dbe91 Openstack-Request-Id: req-1446f945-0ae1-4919-8b58-38a33d64b83a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "ab8717d6-8e10-4c1a-9b0d-09d7550dbe91", "created_at": "2024-09-05T08:48:27.960861+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/ab8717d6-8e10-4c1a-9b0d-09d7550dbe91", "rel": "self"}, {"href": "http://localhost/portgroups/ab8717d6-8e10-4c1a-9b0d-09d7550dbe91", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/ab8717d6-8e10-4c1a-9b0d-09d7550dbe91/ports", "rel": "self"}, {"href": "http://localhost/portgroups/ab8717d6-8e10-4c1a-9b0d-09d7550dbe91/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_detail_get_admin [0.230344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2308de13-2586-4d82-8d1e-271ef9eeca13 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": "2024-09-05T08:48:28.001996+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.TestRBACScopedRequests.test_system_scoped_332_chassis_detail_get_member [0.058339s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69757c30-5a68-4a4a-a441-38a466cdfdfd 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": "2024-09-05T08:48:28.061183+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.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [0.530683s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.263791s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_detail_get_reader [0.058955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99ec22aa-761e-432c-9c14-65e2800bbeb2 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": "2024-09-05T08:48:28.120973+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.TestRBACScopedRequests.test_system_scoped_334_chassis_chassis_id_get_admin [0.059909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b30b8e6f-580d-4a0e-a618-8837c00ca821 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": "2024-09-05T08:48:28.181015+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.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full [0.092779s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_chassis_id_get_member [0.058969s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-557ee9a4-d2a4-4013-bec1-07747f714ac1 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": "2024-09-05T08:48:28.239707+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.TestRBACScopedRequests.test_system_scoped_336_chassis_chassis_id_get_reader [0.058546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d47e782f-1d73-416d-86dd-07b1b6020550 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": "2024-09-05T08:48:28.299194+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.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.093878s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_owner_service_can_add_portgroup [0.373467s] ... 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/4e7b7f4f-6e0e-475b-887d-ea1f181dcb8e Openstack-Request-Id: req-6d1364b0-75f9-4f45-8a59-e03915e61d34 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "4e7b7f4f-6e0e-475b-887d-ea1f181dcb8e", "created_at": "2024-09-05T08:48:28.335351+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/4e7b7f4f-6e0e-475b-887d-ea1f181dcb8e", "rel": "self"}, {"href": "http://localhost/portgroups/4e7b7f4f-6e0e-475b-887d-ea1f181dcb8e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/4e7b7f4f-6e0e-475b-887d-ea1f181dcb8e/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4e7b7f4f-6e0e-475b-887d-ea1f181dcb8e/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_chassis_id_patch_admin [0.067080s] ... 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-7a27ecb2-d1e5-43a3-9024-aded7c7a2076 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": "2024-09-05T08:48:28.359024+00:00", "updated_at": "2024-09-05T08:48:28.386775+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_owner_manager_can_add_portgroup [0.075449s] ... 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/b19943b0-3baa-473f-ae2a-721969f56290 Openstack-Request-Id: req-4e0965e2-27d1-4e1d-a1f7-0a1e796931ea X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b19943b0-3baa-473f-ae2a-721969f56290", "created_at": "2024-09-05T08:48:28.411816+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/b19943b0-3baa-473f-ae2a-721969f56290", "rel": "self"}, {"href": "http://localhost/portgroups/b19943b0-3baa-473f-ae2a-721969f56290", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b19943b0-3baa-473f-ae2a-721969f56290/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b19943b0-3baa-473f-ae2a-721969f56290/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_object_fails [0.328691s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task [0.099555s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_chassis_id_patch_member [0.068007s] ... 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-341c3723-4555-4eaa-93c1-46d55fd27e44 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": "2024-09-05T08:48:28.428638+00:00", "updated_at": "2024-09-05T08:48:28.455731+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_owner_member_cannot_add_portgroup [0.072686s] ... 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-fceb6e08-8220-4639-91b6-e235e3b7f509 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_patch_reader [0.061645s] ... 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-30b1d3b0-b96c-4f22-baae-2033ef402029 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.099786s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_lessee_admin_cannot_add_portgroup [0.070594s] ... 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-ba2358cb-6135-4d54-8b40-098da3139cde X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_delete_admin [0.065809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-72187ffa-9c7c-4457-93c3-5423755a7643 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.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked [0.081659s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_lessee_manager_cannot_add_portgroup [0.072332s] ... 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-cf54d382-c36d-4eeb-aa6e-846affd6565d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_delete_member [0.061174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a3296b29-6836-4fe5-8ad2-25905a9dcfd0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.095896s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_delete_reader [0.059053s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-56d93b0b-f522-4aaf-a05a-c64ea63e63ce X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_member_cannot_add_portgroup [0.074793s] ... 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-26164ec6-d3d4-4fa7-a4b0-5f658d54fb77 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_swift.SwiftTestCase.test_create_object_from_data [0.336052s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_delete_service [0.060094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7fb191ff-edb2-4a52-9be2-b1f19893e46a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_third_party_admin_cannot_add_portgroup [0.075934s] ... 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-820f76b5-4e51-4f75-955e-4eb505da23e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.093775s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_node_history_get_admin [0.065548s] ... 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-1a7db866-44fd-44f0-a995-a06e513ba09a 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": "27e775cd-14f9-4e68-b67d-61eb20b0940c", "created_at": "2024-09-05T08:48:28.816048+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/27e775cd-14f9-4e68-b67d-61eb20b0940c", "rel": "self"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_owner_admin_can_modify_portgroup [0.088728s] ... 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-26d81771-732c-4c57-9e7e-d71bfd1a5e95 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.100793s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_node_history_get_member [0.064435s] ... 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-f1eb6fab-01aa-480b-989c-c68ea988c155 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": "35df58a3-58ea-4a5a-8a2d-129c38f83da7", "created_at": "2024-09-05T08:48:28.882454+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/35df58a3-58ea-4a5a-8a2d-129c38f83da7", "rel": "self"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_node_history_get_reader [0.063664s] ... 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-c3242ee6-b7e0-4694-8592-e219690e68ab 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": "91185c93-fdb7-423c-b5ba-85be9058094e", "created_at": "2024-09-05T08:48:28.946633+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/91185c93-fdb7-423c-b5ba-85be9058094e", "rel": "self"}]}]} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.079049s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_owner_manager_can_modify_portgroup [0.104124s] ... 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-e4f8f61f-a5b4-4bd1-b6ca-892ba1c79ab0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_347_node_history_get_service [0.065729s] ... 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-f2ac47eb-0b00-45fa-9765-fea4981faa69 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": "d21b914e-8152-4853-a1fd-beb5cf85ec64", "created_at": "2024-09-05T08:48:29.011338+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d21b914e-8152-4853-a1fd-beb5cf85ec64", "rel": "self"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_member_cannot_modify_portgroup [0.078675s] ... 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-9483b422-065c-4618-833c-586b0f80bc34 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.091166s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_348_node_history_get_entry_admin [0.063460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/edae3c17-c36b-43e2-8f79-e916e5d0e2ab WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-598c0d3d-e2ff-42fb-b5d8-e0031b8f6676 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "edae3c17-c36b-43e2-8f79-e916e5d0e2ab", "created_at": "2024-09-05T08:48:29.076879+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/edae3c17-c36b-43e2-8f79-e916e5d0e2ab", "rel": "self"}]} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.036396s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.032716s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_lessee_admin_cannot_modify_portgroup [0.082707s] ... 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-c8a6e557-5103-4517-bfd3-32fff3ab7959 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_349_node_history_get_entry_member [0.064278s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/59a14dce-3317-499a-9bec-56b381bc0e8d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f896d84-8bda-456f-92e1-2a5cc41e1d7b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "59a14dce-3317-499a-9bec-56b381bc0e8d", "created_at": "2024-09-05T08:48:29.141549+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/59a14dce-3317-499a-9bec-56b381bc0e8d", "rel": "self"}]} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.035301s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_lessee_manager_cannot_modify_portgroup [0.070627s] ... 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-97d3f2d2-e43c-4fc8-81f3-e530ccf0bbe1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_350_node_history_get_entry_reader [0.063708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/59ee874e-dbb7-4c8c-9cdd-f2206f4013f4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf1f1494-3f3e-4779-a548-de31821510ef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "59ee874e-dbb7-4c8c-9cdd-f2206f4013f4", "created_at": "2024-09-05T08:48:29.205839+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/59ee874e-dbb7-4c8c-9cdd-f2206f4013f4", "rel": "self"}]} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.102532s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_lessee_member_cannot_modify_portgroup [0.068406s] ... 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-bd372ebe-8db2-40bf-ba64-6aa64c2ed32f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_inventory_get_admin [0.064746s] ... 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-f7965821-d7e8-4516-bd3d-c59ed72a5f70 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.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [0.571040s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_inventory_get_reader [0.064852s] ... 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-18736943-a130-4154-a494-26ada800ecf9 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_third_party_admin_cannot_modify_portgroup [0.071849s] ... 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-16ad27d7-c4a0-4c6c-a841-6a72f8634aa5 X-Openstack-Ironic-Api-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.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.109271s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_service [0.063697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9fee0985-4483-425c-b435-690735af0810 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cad35fab-ba86-445f-a548-41afaa810bcd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "9fee0985-4483-425c-b435-690735af0810", "created_at": "2024-09-05T08:48:29.400325+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/9fee0985-4483-425c-b435-690735af0810", "rel": "self"}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_owner_admin_can_delete_portgroup [0.067755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-15cfe67d-8f90-42e0-915d-3bbb9754e45c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_354_shard_get_shards [0.057520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-80af1986-56ad-46f6-ab71-6208e8bdb1c1 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.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.102506s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_owner_manager_can_delete_portgroup [0.067896s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-24bb782a-4a01-49cd-8b3f-eb1e8ee9492e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_owner_member_cannot_delete_portgroup [0.065181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ad13b085-f366-428b-9327-984b72873563 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_shard_patch_set_node_shard [0.094375s] ... 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-649e4732-8a03-48e3-9ff2-03b4575e0883 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.103317s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_owner_service_can_delete_portgroup [0.066637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-dc74eda2-22b3-42c4-bb09-ad0545c211ea X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestRBACScopedRequests.test_system_scoped_356_shard_patch_set_node_shard_disallowed [0.066063s] ... 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-718e8c5b-7221-4bae-884b-70494d42f07b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [0.331392s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.074761s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_lessee_admin_cannot_delete_portgroup [0.065581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a94784da-85ce-4051-b40d-a4953960e4ba X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_357_parent_node_patch_by_admin [0.103790s] ... 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-e4735d49-64f4-4e0e-829b-1dcb55ac95d4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.088067s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_lessee_manager_cannot_delete_portgroup [0.065727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-12bb38a4-d363-4c22-a923-55f8aad89172 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_member_cannot_delete_portgroup [0.066139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4260f455-c0ca-467c-8ff9-47f9821ac36f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_358_parent_node_patch_by_member [0.101199s] ... 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-05b212bf-b16f-4e84-a90f-77a0f1b6915f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.092097s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_third_party_admin_cannot_delete_portgroup [0.082892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-18bd158b-dbb1-47e5-958d-7cc3fec39d2a X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_359_parent_node_patch_by_reader [0.068582s] ... 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-b754ceb4-e7d7-42fe-9b36-25a7dbc1e5d8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.083743s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_nodes_firmware_component_get_admin [0.064843s] ... 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-0bab2cdc-68c5-491d-8dc9-68b5bcd535db 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": "2024-09-05T08:48:29.957840+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [0.329024s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_service_cannot_delete_portgroup [0.086644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f5213ad-5f79-4f17-9307-6ef783efa051 X-Openstack-Ironic-Api-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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.085584s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_361_nodes_firmware_component_get_member [0.065781s] ... 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-be9463cd-1342-4a69-bbc8-5eaa7929991a 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": "2024-09-05T08:48:30.025780+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_owner_reader_can_get_node_portgroups [0.076770s] ... 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-a6b6ae02-e2cd-4012-958e-74806758e3ab 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"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_nodes_firmware_component_get_reader [0.064210s] ... 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-52c98051-7d92-4255-8eef-924256a3835b 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": "2024-09-05T08:48:30.090829+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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.096192s] ... ok {0} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.023741s] ... ok {0} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.021673s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_lessee_reader_can_get_node_porgtroups [0.077148s] ... 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-fa349002-f17d-4d82-adb2-a2342db6312c 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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.084400s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.045081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.024098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ foo() migrated 15 of 15 objects. {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_third_party_admin_cannot_get_portgroups [0.073143s] ... 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-7d05aa7a-055b-43a3-ad00-322cdcbd96fa X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.050170s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.023689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. {3} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.035477s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_service_cannot_get_portgroups [0.072321s] ... 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-7455da68-4b22-446f-b879-ff730a4003c8 X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.089909s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_owner_reader_can_list_ports [0.073763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-357f3736-2102-4333-bad7-420309887d2c 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"}]}]} {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.186625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_owner_service_can_list_ports [0.070032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eba9f80f-69ec-4399-92c6-36a234abbf20 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"}]}]} {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.023343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 15 objects. {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.100262s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.024039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.023587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ Error while running foo: bar. {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_reader_can_list_ports [0.079236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcf15147-988e-4d11-b268-98f6869a70d0 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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.022637s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [0.552750s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.024463s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.096146s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.021597s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.021044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_third_party_admin_cannot_list_ports [0.081427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41fe7650-76e0-4f45-810f-5b09511c9774 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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.021303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.020550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1key1=value1 {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.020587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1.key1value1 {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.105955s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.020696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ "max-count" must be a positive value. {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_owner_reader_can_read_port [0.080501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be183e9c-73c1-489c-9dce-8d2d960f68b8 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": "2024-09-05T08:48:30.650405+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} {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.021819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Data migrations have not completed. Please re-run. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.020437s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.022378s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_owner_service_can_read_port [0.076624s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84051d68-25f4-4454-9389-f9a8ceb61cf1 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": "2024-09-05T08:48:30.731943+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} {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.022404s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.097650s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.022145s] ... ok {0} ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.021398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ This is bad {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and [0.017936s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_lessee_reader_can_read_port [0.075666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34b966ca-b3ac-45c6-9ab4-11f656ea17af 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": "2024-09-05T08:48:30.815483+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} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean [0.017417s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args [0.016592s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.336820s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.017023s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.114744s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.016150s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.016259s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_third_party_admin_cannot_read_port [0.075264s] ... 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-ea3b35fb-e729-4e52-b7af-52de35a4e7b8 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.017394s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address [0.016970s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.017167s] ... ok {3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.091574s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated [0.016492s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name [0.016685s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_owner_admin_can_add_ports [0.087203s] ... 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-fe17a4a2-0e6d-4d59-bcf6-5e0784f4fc43 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.029438s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.016714s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.025465s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string [0.017029s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list [0.017738s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.027289s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args [0.017323s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.025346s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid [0.017085s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_owner_manager_can_add_ports [0.082884s] ... 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-5a754282-5045-4a1e-938a-a99d40956e76 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_args.ValidateDecoratorTest.test_uuid_or_name [0.017896s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.027317s] ... ok {0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema [0.025214s] ... ok {0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args [0.022647s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_owner_admin_cannot_add_ports_to_other_nodes [0.077499s] ... 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-79171b15-8052-4c73-bf64-19cda65b5dc6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_args.ValidateSchemaTest.test_schema_needs_kwargs [0.029352s] ... ok {0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed [0.027808s] ... ok {1} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [0.346772s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session [0.020456s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.019983s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_owner_manager_cannot_add_ports_to_other_nodes [0.079155s] ... 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-8170ba46-2c83-4a0e-8437-7a599ee0d3dd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.TestCinderUtils.test__create_metadata_dictionary [0.027201s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.019608s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.018591s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.026819s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.018508s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.024423s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.018622s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.217596s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.024036s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.019583s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.018692s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.022962s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.033624s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.018253s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.022621s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.025004s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.018499s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.021700s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.018367s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.026992s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.020535s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.025951s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.024797s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.020967s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.027117s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.021336s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.080618s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.027142s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.020631s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.024193s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.020531s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.024872s] ... ok {0} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.019794s] ... ok {0} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.019201s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.026324s] ... ok {0} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.017900s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.024951s] ... ok {0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.020655s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.021550s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_cannot_add_ports_to_other_nodes [0.389722s] ... 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-95eeb41b-8e66-4e8a-b5a0-2dc7cc1475f4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.021710s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.020754s] ... ok {0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [0.051892s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.020386s] ... ok {0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [0.022319s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.020583s] ... ok {0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [0.021164s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_owner_member_cannot_add_port [0.076928s] ... 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-7dbfc458-9054-42a0-989e-d1ea7d5303fd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.022028s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.034776s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.021265s] ... ok {3} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.019650s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.033874s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_lessee_admin_cannot_add_port [0.074505s] ... 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-2254525e-9876-4928-93ce-919067424b62 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.032324s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.049901s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.335385s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.032865s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.046263s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_manager_cannot_add_port [0.075478s] ... 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-07fcf017-5ba4-4885-9736-b84272f2bf49 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.029393s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.072509s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.030759s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.057948s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.021526s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.018038s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_lessee_member_cannot_add_port [0.078891s] ... 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-8ec863b5-176b-47d7-95ee-b9495b4d0fdd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_images.IronicImagesTestCase.test_converted_size_estimate_default [0.018233s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.068530s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.050972s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller [0.018304s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.017952s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.020163s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_third_party_admin_cannot_add_port [0.077785s] ... 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-4560ff69-af6f-4dd0-9f85-a3bafc775260 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.057520s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.021303s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.069708s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.018730s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.018486s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.051906s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_service_can_add_port [0.076301s] ... 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-1474a742-2f32-40ca-8b1c-4cc91485c98c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_image_to_raw [0.023246s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_iso [0.021652s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.092419s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.050604s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.022011s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.018695s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_service_cannot_add_ports_to_other_project [0.075452s] ... 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-a8a0c46b-867a-406f-842c-1c78e25fdeb2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.018652s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.050506s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.022135s] ... ok {1} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.087420s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.024673s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.049961s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.023504s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.019308s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_owner_admin_can_modify_port [0.105387s] ... 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-4f26bed8-1894-496c-9701-6c55b8d9985b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_source_a_path_content_type [0.018235s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error [0.018746s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.082757s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.024423s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.119225s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.021495s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.017924s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_owner_manager_can_modify_port [0.098530s] ... 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-8a4f7e1c-f688-492f-af81-d0b9471f7188 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_explicit [0.017571s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.079177s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.017152s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.082693s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.017507s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.017142s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.016989s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_service_can_modify_port [0.090049s] ... 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-8582933f-63e7-4d97-bfaf-2c374e5e6819 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.082328s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.082210s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_member_cannot_modify_port [0.070561s] ... 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-97383054-7208-4238-8371-89d63f528430 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.081962s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.078706s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_lessee_admin_cannot_modify_port [0.072794s] ... 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-4a0b9d84-f2a4-4d4c-8c24-d781402a393f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.173369s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.080301s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.018621s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver [0.083192s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_manager_cannot_modify_port [0.072376s] ... 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-ad01ef23-b3cc-451b-87c1-e83a1eb7317d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.045064s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.079442s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.044398s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.091541s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_lessee_member_cannot_modify_port [0.071990s] ... 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-7085369e-8ec5-4266-af63-969b07cc6c00 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.037201s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.080017s] ... ok {0} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.048385s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_third_party_admin_cannot_modify_port [0.070939s] ... 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-b806b08f-3350-484f-9650-47f225e2b0ad X-Openstack-Ironic-Api-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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled [0.091567s] ... ok {0} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.041065s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.078682s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.018878s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_owner_admin_can_delete_port [0.070107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b1a38383-d0e4-4eb2-873c-6ee8bc882ae7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.018630s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.017422s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.079489s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.017327s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.016468s] ... ok {3} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.087546s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_owner_manager_can_delete_port [0.072158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a27db60f-0cf0-49f8-9901-6f472f02e9ee X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.VifTestCase.test_vif_attach [0.041764s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.084409s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.032750s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_owner_service_can_delete_port [0.067904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-10d65683-87a9-439f-b0a0-6e9da75d2a8c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.043490s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.079213s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_member_cannot_delete_port [0.066926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8a8000f2-a47a-4e4d-8fa5-11285b8b6a83 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.043325s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.038566s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.082079s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_lessee_admin_cannot_delete_port [0.070707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-024fbb99-a87d-4b5a-a721-ae092640d059 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.045211s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_lessee_manager_cannot_delete_port [0.065427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fbea4f3d-bde8-4de7-897b-be0507cae6b1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.076928s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach [0.042275s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [0.319082s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.035386s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.055166s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_lessee_member_cannot_delete_port [0.080951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1ecac765-4efa-4f09-8742-e5bf4a284b16 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.042270s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.039321s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.084798s] ... ok {3} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.032973s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_third_party_admin_cannot_delete_port [0.081365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3c5f7a3e-f503-446a-8ad2-4205ba7248e3 X-Openstack-Ironic-Api-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.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits [0.024991s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.023494s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_maintenance [0.085692s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.023621s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_owner_reader_can_get_node_ports [0.087846s] ... 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-f014cd95-2f15-44a9-93f5-f80b213f7152 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"}]}]} {1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.078088s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_owner_service_can_get_node_ports [0.085144s] ... 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-b38227df-c6ba-4d74-a104-9841e2a904cc 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"}]}]} {1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service [0.079741s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_lessee_reader_can_get_node_port [0.079200s] ... 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-fc07dd74-3421-464c-b169-db7a7b761ab1 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.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.202837s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.021775s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service_maintenance [0.078602s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.021257s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_third_party_admin_cannot_get_ports [0.072500s] ... 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-db825f84-9671-4fc1-a0c5-1263eed39f1e X-Openstack-Ironic-Api-Maximum-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.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode [0.025368s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [0.496543s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.023806s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot [0.023113s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.086122s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_service_cannot_get_ports [0.075830s] ... 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-9bbcac10-d35f-47a2-947c-31fcb95920d9 X-Openstack-Ironic-Api-Maximum-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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.025461s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.022622s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.023388s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.091812s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.022884s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_owner_reader_can_get_ports_by_portgroup [0.084383s] ... 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-1f55fd38-0212-479b-8410-e8bbf889707d 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.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.024564s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.023622s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.023853s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_owner_service_cam_get_ports_by_portgroup [0.082938s] ... 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-16b6a2ef-a4ea-4d3d-9643-0139b9d3434b 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.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.098044s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.025668s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.023178s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.023579s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.023056s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_lessee_reader_can_get_ports_by_portgroup [0.082866s] ... 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-8db50d07-83ba-47cd-987d-aa781ea64d6e 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_neutron.TestNeutronClient.test_get_neutron_client_with_context [0.313871s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.024555s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.022857s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.023655s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_third_party_admin_cannot_get_ports_by_portgroup [0.078879s] ... 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-9e8cc870-f77e-4542-8081-6e681bb2db9f X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_service [0.027196s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.023576s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.024073s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_service_cannot_get_ports_by_portgroup [0.082964s] ... 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-875a70c4-bc9e-475d-9cde-1e37cfe789f0 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.027062s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.024806s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.029502s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_owner_reader_can_list_volume_connectors [0.078830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10ee30e7-e0a9-4a7c-b53c-1e1f7709e09c 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"}]} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.026463s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.023101s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.024088s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state [0.022612s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token [0.319103s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.024297s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token [0.021832s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.022660s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.024324s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.022802s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.023360s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_lessee_reader_can_list_volume_connectors [0.241101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a92bdd2c-2f30-4e74-b0e2-3a6ed6f7e039 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"}]} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.023085s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.032536s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.030760s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_third_party_admin_cannot_get_connector_list [0.076245s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-182b722a-59c0-4079-97c5-4209b8d26731 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"connectors": []} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.029368s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.025981s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.026866s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_owner_admin_can_post_volume_connector [0.075205s] ... 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/6568c92b-96a2-45ec-8c81-59027cc7e2c2 Openstack-Request-Id: req-3c8bad81-8f1d-4399-9d5c-de4b34fa4572 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6568c92b-96a2-45ec-8c81-59027cc7e2c2", "created_at": "2024-09-05T08:48:34.717918+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/6568c92b-96a2-45ec-8c81-59027cc7e2c2", "rel": "self"}, {"href": "http://localhost/volume/connectors/6568c92b-96a2-45ec-8c81-59027cc7e2c2", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.055550s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.031090s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token [0.023551s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.021696s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_owner_manager_can_post_volume_connector [0.127431s] ... 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/2414ad17-0642-42c0-8afa-7bc64eee8953 Openstack-Request-Id: req-c8a8c6c1-9423-4e1a-b7c3-575f464b2c0b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2414ad17-0642-42c0-8afa-7bc64eee8953", "created_at": "2024-09-05T08:48:34.846338+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/2414ad17-0642-42c0-8afa-7bc64eee8953", "rel": "self"}, {"href": "http://localhost/volume/connectors/2414ad17-0642-42c0-8afa-7bc64eee8953", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.023013s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call [0.020988s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception [0.021029s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_owner_service_can_post_volume_connector [0.075879s] ... 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/c69bf046-7ad7-4913-8eab-78cf7e278890 Openstack-Request-Id: req-f81bca70-2ebc-458e-842e-3e8bf55803b4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c69bf046-7ad7-4913-8eab-78cf7e278890", "created_at": "2024-09-05T08:48:34.924023+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c69bf046-7ad7-4913-8eab-78cf7e278890", "rel": "self"}, {"href": "http://localhost/volume/connectors/c69bf046-7ad7-4913-8eab-78cf7e278890", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch [0.023209s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled [0.020197s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled [0.020381s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled [0.021004s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_lessee_admin_cannot_post_volume_connector [0.074536s] ... 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-c23c8fe3-0beb-42c6-9c3e-c58e3910d5b3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_rpcapi.RPCAPITestCase.test_local_cast [0.021808s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [0.617037s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error [0.021720s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.018834s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [1.056659s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.025009s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.018544s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_lessee_manager_cannot_post_volume_connector [0.070771s] ... 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-e5024e53-75d1-4928-87fc-7bf12ecca490 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.024606s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.018191s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.017473s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.023023s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.018165s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.020990s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.019070s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_third_party_admin_cannot_post_volume_connector [0.071579s] ... 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-3414fdc6-cf80-4352-a902-f342f7fe58ec X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.023873s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.019444s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.021218s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.018624s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.125602s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.023408s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.019251s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_service_admin_cannot_post_volume_connector [0.071640s] ... 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-07e4ccb2-a8a9-4bda-897a-ddd5287030b9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.019277s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.026556s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.019666s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.020483s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.017950s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.020697s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.017878s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_owner_reader_can_get_volume_connector [0.069654s] ... 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-b585427c-52de-4877-8ab2-36839048074b 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": "2024-09-05T08:48:35.261483+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"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.023813s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.018106s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.114644s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.018878s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.023517s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.017856s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state [0.022784s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.018369s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_lessee_reader_can_get_volume_connector [0.071116s] ... 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-808c103b-7740-4ae4-8af9-588d87f033b6 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": "2024-09-05T08:48:35.332480+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"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.026894s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.018741s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.018222s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.023430s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.019204s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.021391s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_third_party_admin_cannot_get_volume_connector [0.067817s] ... 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-40e279ee-fca0-4635-911c-da835c0ef684 X-Openstack-Ironic-Api-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.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.020047s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.133713s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.024811s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.020086s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.022870s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.021579s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.040527s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_lessee_member_cannot_patch_volume_connectors [0.071974s] ... 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-6b7a8a6e-c325-4ad0-b2be-fcc6a220f52f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.023554s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.023367s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.041160s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [0.109922s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.025001s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.041090s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_owner_admin_can_patch_volume_connectors [0.077585s] ... 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-d404998c-e126-4236-8de6-6fe9d14760be X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.023971s] ... ok {3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.022802s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.042236s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test__get_service_steps [0.041063s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.104693s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.037431s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_patch_volume_connectors [0.078322s] ... 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-2f940786-a06a-45f0-ad5d-89fb54b7c6b0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.035900s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test_set_node_service_steps [0.052672s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.040328s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_lessee_admin_cannot_patch_volume_connectors [0.075191s] ... 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-7f809b8e-3d4e-4fa5-8bee-7366f8aec814 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.099208s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.036150s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.036057s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_manager_can_patch_volume_connectors [0.075487s] ... 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-7a810bbc-05d1-4d68-8c59-45626e4f9e61 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.081312s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.043630s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_owner_member_can_patch_volume_connectors [0.079978s] ... 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-f582c0c0-0446-4ee1-a4f6-d2219048b0ba X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.041719s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.080207s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.040327s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_patch_volume_connectors [0.069237s] ... 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-949be607-1e2f-419f-b8b0-2b415392e8b2 X-Openstack-Ironic-Api-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.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.034169s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.023427s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.087062s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.022635s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_owner_admin_can_delete_volume_connectors [0.068233s] ... 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-64bc92ae-39de-44fa-9d09-cabeacea74ac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.023030s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.022110s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.033300s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.095416s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_manager_can_delete_volume_connectors [0.066916s] ... 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-75d31fa3-4715-49f6-8e54-02f5540968da X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.417547s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.034718s] ... ok {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.040925s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.033975s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_owner_service_can_delete_volume_connectors [0.068705s] ... 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-0341e6ef-d795-4af0-b5ad-caccfcd39869 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token [0.093618s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.037570s] ... ok {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.046586s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.019427s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_lessee_admin_can_delete_volume_connectors [0.070354s] ... 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-27bb96dc-7f6c-497f-8897-6cbf95144319 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing [0.042142s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.019056s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.018445s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.035252s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token_older_version [0.091633s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.018438s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_lessee_manager_can_delete_volume_connectors [0.066898s] ... 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-6c0336d2-36d7-464f-aca4-687f5c255f31 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.032325s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.034722s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.027926s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.045632s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.090223s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_third_party_admin_cannot_delete_volume_connector [0.068095s] ... 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-377c1c96-fdbd-4d59-bc07-bbb83599cc4a X-Openstack-Ironic-Api-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.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.033851s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.047634s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.031658s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.023082s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_service_cannot_delete_volume_connector [0.066715s] ... 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-9364ada4-eba5-4b93-9c59-014618ce2604 X-Openstack-Ironic-Api-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.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.033388s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.024921s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_tls_required [0.093111s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.023931s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.030243s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.021605s] ... ok {3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.024960s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_owner_reader_can_get_targets [0.072563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ca3b344-11b5-4cd9-ab84-5fb474669f09 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"}]} {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.023116s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.028424s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.021877s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_token [0.090734s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.025929s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.024246s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_lesse_reader_can_get_targets [0.069202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-048c0230-1f77-470d-84ea-55bc871e31f4 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"}]} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.028529s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.023574s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.022706s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.032107s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.024336s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.029072s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_third_party_admin_cannot_get_target_list [0.065374s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61127e53-088d-4656-9b03-2bddb5b9fdde X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"targets": []} {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.024585s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.027433s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.022634s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.024970s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.022250s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_owner_reader_can_get_volume_target [0.069461s] ... 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-98d0736a-0c8f-4021-a386-445c1dfe51c5 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": "2024-09-05T08:48:36.691256+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"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.028044s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.023729s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.022689s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.031032s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.023591s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.025788s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_lessee_reader_can_get_volume_target [0.071878s] ... 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-1f8f0aba-b18a-4359-9ba3-4b390ef85323 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": "2024-09-05T08:48:36.761755+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"} {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.023575s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.028487s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.022845s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.032583s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_third_party_admin_cannot_get_volume_target [0.069020s] ... 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-4697bda9-fd42-41d0-9d10-e60756c32707 X-Openstack-Ironic-Api-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.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_verify_ca [0.310151s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.047739s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.037011s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.032030s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.045637s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_admin_create_volume_target [0.078409s] ... 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/edd07c28-efe9-4073-a80d-4769e29cad61 Openstack-Request-Id: req-8bd258f0-6c29-4ec4-8068-0df9af045ada X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "edd07c28-efe9-4073-a80d-4769e29cad61", "created_at": "2024-09-05T08:48:36.936000+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/edd07c28-efe9-4073-a80d-4769e29cad61", "rel": "self"}, {"href": "http://localhost/volume/targets/edd07c28-efe9-4073-a80d-4769e29cad61", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.038124s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_version [0.094482s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.046909s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.035839s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_owner_service_create_volume_target [0.073425s] ... 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/0bb1d4d4-fb69-43e8-8bea-1ec82abb1e1d Openstack-Request-Id: req-ec28e3cf-5584-4446-bb6c-615485d4ec44 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0bb1d4d4-fb69-43e8-8bea-1ec82abb1e1d", "created_at": "2024-09-05T08:48:37.010160+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0bb1d4d4-fb69-43e8-8bea-1ec82abb1e1d", "rel": "self"}, {"href": "http://localhost/volume/targets/0bb1d4d4-fb69-43e8-8bea-1ec82abb1e1d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.048665s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.036256s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.089559s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.032098s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.053247s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_owner_manager_create_volume_target [0.073734s] ... 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/b53d4043-97d9-4e12-aac5-e13c3ede16c3 Openstack-Request-Id: req-07337c55-997e-4863-9809-55917414f62d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b53d4043-97d9-4e12-aac5-e13c3ede16c3", "created_at": "2024-09-05T08:48:37.084115+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b53d4043-97d9-4e12-aac5-e13c3ede16c3", "rel": "self"}, {"href": "http://localhost/volume/targets/b53d4043-97d9-4e12-aac5-e13c3ede16c3", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.030593s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.048130s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.030910s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_required_agent_token [0.090097s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.029149s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.048284s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_lessee_admin_create_volume_target [0.079021s] ... 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/2f6ecc0f-f0fe-44e1-8a6d-1b9d06c683ee Openstack-Request-Id: req-3a0e60d0-3d90-453a-be8b-0c78ab54cd7f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "2f6ecc0f-f0fe-44e1-8a6d-1b9d06c683ee", "created_at": "2024-09-05T08:48:37.163383+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2f6ecc0f-f0fe-44e1-8a6d-1b9d06c683ee", "rel": "self"}, {"href": "http://localhost/volume/targets/2f6ecc0f-f0fe-44e1-8a6d-1b9d06c683ee", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.029189s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.044723s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.030212s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_agent_version_anaconda [0.090883s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.030198s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_lessee_manager_create_volume_target [0.083864s] ... 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/1699a6d2-ec14-444f-838f-9e6a74a2a60d Openstack-Request-Id: req-c0dee6ab-2dab-40c4-b6a6-45f0601fae07 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1699a6d2-ec14-444f-838f-9e6a74a2a60d", "created_at": "2024-09-05T08:48:37.247947+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1699a6d2-ec14-444f-838f-9e6a74a2a60d", "rel": "self"}, {"href": "http://localhost/volume/targets/1699a6d2-ec14-444f-838f-9e6a74a2a60d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress [0.047430s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.028495s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.026007s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.028522s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.024170s] ... ok {1} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_version [0.090618s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.025062s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.041176s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.024051s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.033930s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.040650s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.100306s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.037881s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.035388s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.073119s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.037425s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_third_party_admin_cannot_create_volume_target [0.290845s] ... 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-fad213e1-df59-4ba8-a212-eab31868ccae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.037640s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.210078s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.095684s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.037306s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.039684s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_412_owner_member_can_patch_volume_target [0.081466s] ... 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-235582f2-ab7d-400e-a40d-34ab60294d38 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.038213s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.040416s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty [0.028019s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.083865s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.041150s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated [0.029164s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_owner_service_can_patch_volume_target [0.083312s] ... 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-1cbc9b7b-77e6-49b9-9af4-a8ae00d9c91a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.039150s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.032148s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.086503s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.028443s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.038945s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive [0.028671s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_lessee_admin_can_patch_volume_target [0.087056s] ... 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-cfd4fedd-9927-42c1-b377-2b3a5b775f82 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.038700s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.027977s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.027817s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.030657s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.107899s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.034502s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_lessee_manager_can_patch_volume_target [0.079947s] ... 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-5ad3ffe2-3e3c-4e2d-8062-eb8f1929fe60 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.027913s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.034612s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.062250s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.029910s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.033661s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_lessee_member_cannot_patch_volume_target [0.069114s] ... 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-27092242-66f0-4ef7-ab76-c57be00f01f9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.028314s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.034068s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop [0.060653s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.025262s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.032580s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.024261s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.039754s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_417_third_party_admin_cannot_patch_volume_target [0.072954s] ... 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-4937ec96-8275-438d-a167-d14e18c50f4d X-Openstack-Ironic-Api-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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.025092s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.034104s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.032640s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.024277s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.023761s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.025734s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_service_cannot_patch_volume_target [0.073052s] ... 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-a9081664-34ae-42c3-a1b2-8942f9149855 X-Openstack-Ironic-Api-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_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.034057s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.056391s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.032763s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.070426s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.025471s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.055401s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_owner_admin_can_delete_volume_target [0.076106s] ... 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-fe351027-cf11-4200-8a98-da04e2d5ee70 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.035295s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_get_node_with_token [0.047511s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.056401s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.035448s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_owner_manager_can_delete_volume_target [0.071961s] ... 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-13d9f784-4f94-40d8-bd33-b97e109e2323 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.MiscTestCase.test_iter_nodes [0.060366s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.035977s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.059336s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.035193s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_lessee_admin_can_delete_volume_target [0.071577s] ... 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-abfc85ad-89ad-4a2d-8c8a-b1d3ad598b8e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.060781s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.036862s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_locked [0.033163s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv6 [0.037293s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_can_delete_volume_target [0.073462s] ... 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-df039039-1f9d-41b3-b914-377fd23acba3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_manager.MiscTestCase.test_node_with_token_already_set [0.033402s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.036122s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.035839s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios [0.036183s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_owner_member_cannot_delete_volume_target [0.069154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8492b221-945a-401c-bf71-036119eb095e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.038184s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.025082s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.021763s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.036888s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.023406s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_lessee_member_cannot_delete_volume_target [0.069999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8d497de4-1340-44d3-b48a-d24e3b7ad3d7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.037515s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.022938s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.021277s] ... ok {1} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.035681s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.021722s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_third_party_admin_cannot_delete_volume_target [0.072294s] ... 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-75e675df-4bdc-4356-8402-5e3f92c64936 X-Openstack-Ironic-Api-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_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.022205s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config [0.026261s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.026516s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass [0.091023s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_service_cannot_delete_volume_target [0.068615s] ... 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-a1238bac-7905-4e86-b5db-9b0e07170857 X-Openstack-Ironic-Api-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.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.420372s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.037552s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.019329s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.018466s] ... ok {3} ironic.tests.unit.conductor.test_utils.ServiceUtilsTestCase.test_wipe_service_internal_info [0.048598s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_owner_reader_can_get_volume_connectors [0.075438s] ... 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-98f4456d-df0d-40ad-a779-894f90a9c20a 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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.018824s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.097236s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.026933s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.018321s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.017549s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.033870s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.017674s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_owner_service_can_get_volume_connectors [0.075567s] ... 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-f70f0ddd-8baa-4086-b6d5-65eb9a9961b2 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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.018235s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.029166s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.017883s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass [0.096008s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.026867s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.018418s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.017589s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.026855s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.017667s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_lessee_reader_can_get_node_volume_connectors [0.079770s] ... 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-f02f1e15-d693-4b58-b883-2a67b19ba957 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"}]} {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.017956s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.030222s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.018892s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.028710s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.018751s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days [0.104106s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_third_party_admin_cannot_get_node_volume_connectors [0.069198s] ... 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-d79695b8-5972-4155-8f7d-a0865467eba8 X-Openstack-Ironic-Api-Maximum-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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.018918s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.028868s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.018092s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.025839s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.018036s] ... ok {3} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.023653s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.018351s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work [0.081744s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.018693s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_service_cannot_get_node_volume_connectors [0.080180s] ... 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-38d7bc44-9982-4835-9831-80f75ad49fdc X-Openstack-Ironic-Api-Maximum-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.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.030260s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.018250s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.018534s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.016630s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.044768s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.016545s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor [0.087938s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.018084s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_432_owner_reader_can_get_node_volume_targets [0.089747s] ... 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-314e6c4b-3bac-4d83-85fa-07e7a51b2015 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"}]} {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.042249s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.017190s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.016271s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.035582s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.016519s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.035431s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.032838s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_service_can_read_get_node_volume_targets [0.079585s] ... 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-9897d590-c7e9-4665-ab75-b9e9af9672ae 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"}]} {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.103000s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.031009s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled [0.033600s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.023898s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.050013s] ... ok {0} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.033296s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_reader_can_get_node_volume_targets [0.077420s] ... 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-d3a126a6-1f92-433b-9f58-8ca0ec130fd8 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"}]} {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.025923s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.018418s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.016328s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.027196s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.055312s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.029441s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.034086s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_third_part_admin_cannot_read_node_volume_targets [0.071231s] ... 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-54190e8d-306d-4435-b722-09d04b7787c1 X-Openstack-Ironic-Api-Maximum-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_wsgi_service.TestWSGIService.test_workers_set_default [0.028360s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.024623s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.020832s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.028886s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.022267s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.028584s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_service_cannot_read_node_volume_targets [0.070679s] ... 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-45b314fe-d040-4b29-b640-c5f4bf6ddee7 X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.102536s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.024203s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.028659s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.024468s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.050451s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.029715s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.024837s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_owner_reader_cannot_get_drivers [0.066225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-39d0120f-7482-414d-91ae-70bb9868b481 X-Openstack-Ironic-Api-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.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.018753s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.024643s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.017062s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.022484s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.017765s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.017170s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_lessee_reader_cannot_get_drivers [0.063503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4095a886-44c4-4836-9441-35d619086328 X-Openstack-Ironic-Api-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.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.032297s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.017386s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.023717s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.022450s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_third_party_admin_cannot_get_drivers [0.065833s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bef67eab-33df-4a2e-94ad-dc4b8e128910 X-Openstack-Ironic-Api-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.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.023963s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state [0.088567s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.022505s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.022428s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_service_cannot_get_drivers [0.075613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-062a9d5a-a209-4aad-a1e0-135a39b393f2 X-Openstack-Ironic-Api-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.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.022413s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.247130s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_offline [0.023134s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.023993s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_reader_cannot_get_drivers_vendor_passthru [0.065342s] ... 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-195d4c28-b3fc-4e4d-8c82-8ceebb727905 X-Openstack-Ironic-Api-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.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.049406s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.024667s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.022341s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.022057s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.050721s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_cannot_get_drivers_vendor_passthru [0.068066s] ... 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-bb0feaa6-011d-411f-bff9-441f1163c448 X-Openstack-Ironic-Api-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.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.024911s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.022085s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.049712s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_drivers_vendor_passthru [0.068112s] ... 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-52395890-b6b1-4449-8ac0-974ae4d5b284 X-Openstack-Ironic-Api-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.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance [0.244679s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.032974s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.040095s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.026561s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.023325s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.053200s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_drivers_vendor_passthru [0.068151s] ... 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-762f424d-9242-4567-aff6-0756e2e0cc5a X-Openstack-Ironic-Api-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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.024639s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.089028s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.022913s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.052860s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.025286s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_bios_setttings [0.076047s] ... 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-3d147c8f-2c62-452a-8103-de30bbb4a51c 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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.023761s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.047070s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.024257s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.092947s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.022156s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.044832s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_lessee_reader_can_get_bios_settings [0.072258s] ... 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-999e9825-8789-49ca-b18a-0a668275416f 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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.025703s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.068815s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.030531s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.046213s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.031089s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_third_party_admin_cannot_get_bios_settings [0.073109s] ... 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-3c53fd44-a6fc-4377-aa16-da8f46ef0e54 X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.048494s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.025693s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.028857s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.090100s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_service_can_get_bios_setttings_owner_project [0.072801s] ... 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-bd61b71e-1547-40a3-a7f2-b0ea5e9ddb3b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"bios": []} {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.055833s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.031134s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.023939s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.079097s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.062009s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.037869s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.034229s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.048684s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.065224s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.037768s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.050487s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.038201s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.064828s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.035353s] ... ok {3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.032508s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.088392s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.065379s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_service_cannot_get_bios_setttings [0.258723s] ... 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-f71f5863-3303-433b-b16e-da4dc0947c1f X-Openstack-Ironic-Api-Maximum-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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.033385s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.050918s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.031380s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.063673s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_conductors [0.066842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-13162738-5d3d-46e0-9748-b457d42a027b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.039375s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.036457s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.033213s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_conductors [0.065598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f97a6920-0f42-463a-8fc7-d763a360e92b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.077799s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.034860s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.091061s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call [0.055849s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_conductors [0.064303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4d61c6b9-8a61-4441-b4f4-9c0c121c7c49 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.036536s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.049800s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.039001s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.035784s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.025768s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_owner_reader_can_get_allocations [0.067317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e2978ef-4fbd-4d68-a717-3b18ef229257 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": "ed802f8d-993b-4420-8973-33838f43f786", "created_at": "2024-09-05T08:48:40.791125+00:00", "updated_at": "2024-09-05T08:48:40.792453+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/ed802f8d-993b-4420-8973-33838f43f786", "rel": "self"}, {"href": "http://localhost/allocations/ed802f8d-993b-4420-8973-33838f43f786", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.033711s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.024928s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.023678s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.026114s] ... ok {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.090744s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_454_lessee_reader_can_get_allocations [0.066628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-844efcf6-bd58-4267-a249-7bb1d8ece831 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": "7420229d-9eed-4fce-adb1-c825ba829d94", "created_at": "2024-09-05T08:48:40.859339+00:00", "updated_at": "2024-09-05T08:48:40.860652+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/7420229d-9eed-4fce-adb1-c825ba829d94", "rel": "self"}, {"href": "http://localhost/allocations/7420229d-9eed-4fce-adb1-c825ba829d94", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.027579s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.023534s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.023004s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_owner_reader_can_get_their_allocation [0.067809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/6298629f-ae88-4c12-96a7-f17eaad04aab WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64060840-bd15-4c1f-9208-1bf0145e4ccd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6298629f-ae88-4c12-96a7-f17eaad04aab", "created_at": "2024-09-05T08:48:40.920000+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/6298629f-ae88-4c12-96a7-f17eaad04aab", "rel": "self"}, {"href": "http://localhost/allocations/6298629f-ae88-4c12-96a7-f17eaad04aab", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.093556s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.028262s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.026008s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.043791s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_456_lessee_reader_can_get_their_allocation [0.068009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/212763c8-4504-4750-8204-468db5c9fa21 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d9766ae-5f17-426e-8831-b3606e10651b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "212763c8-4504-4750-8204-468db5c9fa21", "created_at": "2024-09-05T08:48:40.995589+00:00", "updated_at": "2024-09-05T08:48:40.996888+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/212763c8-4504-4750-8204-468db5c9fa21", "rel": "self"}, {"href": "http://localhost/allocations/212763c8-4504-4750-8204-468db5c9fa21", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.030335s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.021823s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.024781s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.033164s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.217525s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.026263s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_457_owner_admin_can_delete_their_allocation [0.068841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/8eb4b115-47d9-4591-8857-da311f6ce51a GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d838c6f5-58b8-4ee0-827f-44a016bac3d8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.028043s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.069084s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.025981s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_manager_can_delete_their_allocation [0.066994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/ccb0a285-7767-459e-87b9-db792c20de9a GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-148fa559-bd05-45c4-8631-b9124495db0a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.026314s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.025770s] ... ok {1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.024722s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_459_lessee_admin_can_delete_their_allocation [0.064925s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/98a9f538-cc27-4fab-842d-6d6a11a7783d GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f8aaa522-d1b3-44bb-a4a6-3fe9dbd6866e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.020431s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.114946s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.020924s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.018032s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.041994s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_460_lessee_manager_can_delete_their_allocation [0.065513s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/8e0d2e6e-e02a-407b-88c8-2421657cd27c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a2e9c158-a51e-426b-a07a-7b49cf8651fd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.062379s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.064444s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_461_owner_member_can_delete_their_allocation [0.064903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/eae5eac4-0f01-4105-a2ad-1a7cd4c4598d GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-29ca0be2-8122-49bd-be7e-a14d70d25589 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.061794s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.083259s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_462_lessee_member_can_delete_their_allocation [0.065623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/84b68dee-ccc4-466b-8991-8731eb7df954 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-03c66bbb-1624-4a51-87ce-e969b154a2f0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.391671s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.054533s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.027296s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.072910s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_463_owner_member_can_patch_allocation [0.079327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a2e0651b-7dc9-47f4-96f9-78bfdd3ce870 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9f4ee83-1698-4329-b2f1-00c30ef99551 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "a2e0651b-7dc9-47f4-96f9-78bfdd3ce870", "created_at": "2024-09-05T08:48:41.456361+00:00", "updated_at": "2024-09-05T08:48:41.493140+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/a2e0651b-7dc9-47f4-96f9-78bfdd3ce870", "rel": "self"}, {"href": "http://localhost/allocations/a2e0651b-7dc9-47f4-96f9-78bfdd3ce870", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.034386s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.030920s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.085945s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.039005s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_member_can_patch_allocation [0.088564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/7d2d5e7f-90d4-4085-b910-1974c3ce7dd0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba65b1d0-5ffe-4b62-9de6-032a24eb7564 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "7d2d5e7f-90d4-4085-b910-1974c3ce7dd0", "created_at": "2024-09-05T08:48:41.548442+00:00", "updated_at": "2024-09-05T08:48:41.582099+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/7d2d5e7f-90d4-4085-b910-1974c3ce7dd0", "rel": "self"}, {"href": "http://localhost/allocations/7d2d5e7f-90d4-4085-b910-1974c3ce7dd0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.029204s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.064502s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.030214s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_can_get_allocations [0.061417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a81b36e4-e777-4461-ab52-0d4ecb05ff17 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"allocations": []} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.053281s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.033444s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.034502s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_466_third_party_admin_can_create_allocation [0.069393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f00a232a-157b-4c01-88ea-f4ff80d093c1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.245851s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service [0.055313s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.030685s] ... ok {3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.026559s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.055957s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_467_third_party_admin_cannot_create_allocation_with_owner_node [0.075000s] ... 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-3a626608-2ca4-4736-859a-e414aae35745 X-Openstack-Ironic-Api-Maximum-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.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.026930s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.066556s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_power_validate_fail [0.059015s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config [0.050505s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_without_jsonrpc_port_pined_version [0.066984s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_468_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.073486s] ... 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-cd6912d0-224b-43ba-a05e-395cad8712ab X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail [0.050874s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.057062s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_469_owner_admin_can_create_allocation_with_their_uuid [0.074197s] ... 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-028a584e-193a-455b-8646-c6a47f097342 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.080011s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config [0.057414s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.055084s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail [0.045182s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.054561s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.071088s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_470_owner_manager_can_create_allocation_with_their_uuid [0.075363s] ... 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-ddd1abe3-8c9e-4947-b8db-7e3dc2722748 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot [0.048878s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.039592s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.055458s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_471_third_party_admin_cannot_read_an_allocation [0.064017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/4b12a544-4100-48cd-a6e5-466c54fc0846 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-37804687-3e7d-474e-b31f-7678ce1ebdd6 X-Openstack-Ironic-Api-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 4b12a544-4100-48cd-a6e5-466c54fc0846 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config [0.041825s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.070526s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail [0.040243s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.069280s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_third_party_admin_cannot_patch_an_allocation [0.073196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/8adb16ce-c75e-48ca-9308-874a27eb162a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f101eb5-ec14-4a0a-8f4b-f0f386526331 X-Openstack-Ironic-Api-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 8adb16ce-c75e-48ca-9308-874a27eb162a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config [0.045104s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_fail [0.057162s] ... ok {0} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.076390s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_third_party_admin_cannot_delete_an_allocation [0.063655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/17411a79-6a00-4be0-a003-52656050d19d GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bb45128b-f9bc-43d6-bcc3-9843bb1aeb2a X-Openstack-Ironic-Api-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 17411a79-6a00-4be0-a003-52656050d19d could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail [0.046688s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_wait [0.055169s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.045645s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_474_owner_reader_can_read_node_allocation [0.075080s] ... 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-e9cea74c-319f-4bc4-8498-492531e9a30a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "3a79aba3-00ec-4eb3-8858-8e2e5b11014c", "created_at": "2024-09-05T08:48:42.261614+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/3a79aba3-00ec-4eb3-8858-8e2e5b11014c", "rel": "self"}, {"href": "http://localhost/allocations/3a79aba3-00ec-4eb3-8858-8e2e5b11014c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.100264s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk [0.054497s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.094430s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_475_lessee_reader_can_read_node_allocation [0.073959s] ... 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-b0c3c074-0fd1-481b-b487-1d9cb445bf6f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "d14fe585-95da-4f45-a372-381ce91b689c", "created_at": "2024-09-05T08:48:42.345245+00:00", "updated_at": "2024-09-05T08:48:42.346596+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/d14fe585-95da-4f45-a372-381ce91b689c", "rel": "self"}, {"href": "http://localhost/allocations/d14fe585-95da-4f45-a372-381ce91b689c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy [0.052686s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.041509s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.089526s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent [0.044199s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.040503s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_476_third_party_admin_cannot_read_node_allocation [0.068559s] ... 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-22a05d75-e790-41ee-96bf-b505153b0f4a X-Openstack-Ironic-Api-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.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor [0.038648s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.090489s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client [0.025888s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info [0.023368s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_owner_admin_can_delete_allocation [0.077358s] ... 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-94f8ad43-8a6e-4cb7-84bb-18f3df6ee7b6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port [0.023473s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol [0.021727s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host [0.021801s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic [0.106084s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_478_owner_manager_can_delete_allocation [0.072839s] ... 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-2fb8596b-3831-469c-a3f8-a97fcbe1809b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password [0.023586s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path [0.021268s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port [0.020763s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_479_lessee_admin_can_delete_allocation [0.070656s] ... 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-f769ffe8-8458-4846-ae3e-24337d3a15c0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol [0.022640s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.097865s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username [0.022177s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.265504s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.033652s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_480_lessee_manager_not_delete_allocation [0.075214s] ... 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-f503a8dc-2983-4036-8ded-9d160a7b3f32 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-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.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.036288s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.083379s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.035609s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.133390s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_481_third_party_admin_cannot_delete_allocation [0.083063s] ... 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-de5e81ef-ef8d-4b55-9a15-d77f28cc6d35 X-Openstack-Ironic-Api-Maximum-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.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.035942s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.078605s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.033555s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_reader_cannot_get_deploy_templates [0.065065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6ecd51a6-229b-4535-9d47-436ad2434a9b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.023352s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.053668s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.093522s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.031848s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_483_lessee_reader_cannot_get_deploy_templates [0.064656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c33045ac-bed3-40d7-b056-8c557d424f45 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs [0.038430s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.054670s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail [0.038821s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.096176s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_484_third_party_admin_cannot_get_deploy_templates [0.063109s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b9b7e508-d02f-4810-9df2-9ee89197ba54 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.054315s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom [0.026125s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios [0.022268s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.053819s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi [0.022707s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe [0.022945s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.101642s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device [0.023182s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.052206s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent [0.023462s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list [0.023011s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.050708s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device [0.024539s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.090122s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode [0.025620s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.052824s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail [0.023686s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy [0.049576s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list [0.023783s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_post_deploy_template [0.252083s] ... 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-ce3ef6f0-58db-4498-b3f9-a70a74e90b55 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.054350s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode [0.026112s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.048893s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable [0.023288s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_486_service_cannot_get_deploy_templates [0.062166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-98ea0a72-d7b1-41b1-b5e3-9eb435b81bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent [0.023608s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.064115s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step [0.048193s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting [0.024724s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device [0.026851s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_487_service_cannot_post_deploy_template [0.068551s] ... 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-82578eb6-11ce-4b1c-ae41-e2cb2c5490c6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.057471s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.056615s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change [0.031292s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device [0.027417s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_488_owner_reader_cannot_access_chassis [0.066111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9672b911-6249-48c0-9be4-293e9223d5df X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [0.064539s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable [0.028095s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy [0.090337s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode [0.026390s] ... ok {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.043496s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_489_lessee_reader_cannot_access_chassis [0.062274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6647d6b4-b012-4677-9fe1-2b876f380e8c X-Openstack-Ironic-Api-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.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_job_not_scheduled [0.029514s] ... ok {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.043200s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail [0.025569s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_with_clean_step [0.025998s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_490_third_party_admin_cannot_access_chassis [0.064419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2f09534e-65be-4537-a120-a322b2bbf3e3 X-Openstack-Ironic-Api-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.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.104704s] ... ok {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.046046s] ... ok {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing [0.039637s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_491_third_party_admin_cannot_create_chassis [0.065442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6fa7db79-c35b-42d6-a9c0-8c82b31fa05e X-Openstack-Ironic-Api-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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps [0.040370s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_492_service_cannot_access_chassis [0.062396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6e6ea728-4d95-4ef9-9f2d-2ff9eaae0895 X-Openstack-Ironic-Api-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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.047745s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail [0.031663s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step [0.201613s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_493_service_cannot_create_chassis [0.067165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f44962d3-5485-49f9-96ce-4917d5bc1783 X-Openstack-Ironic-Api-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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.038778s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_with_clean_step [0.029391s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step [0.026523s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.044261s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_494_node_history_get_admin [0.074017s] ... 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-2b07045e-ee08-46c8-b4a0-ed6141b1f7db 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": "0a59588c-a12a-4ebf-a27e-38c614ddaedf", "created_at": "2024-09-05T08:48:43.836405+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/0a59588c-a12a-4ebf-a27e-38c614ddaedf", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method [0.040261s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.287456s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted [0.041309s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.040530s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step [0.049558s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_495_node_history_get_member [0.076683s] ... 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-808f2afd-9f30-4a9e-871e-22f90cac77bb 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": "0a313070-e9f6-485b-9311-409685b9e0f3", "created_at": "2024-09-05T08:48:43.910853+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/0a313070-e9f6-485b-9311-409685b9e0f3", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers [0.041621s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.088179s] ... ok {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.057760s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [0.038373s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_node_history_get_reader [0.074283s] ... 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-40c6e98f-92aa-498d-a38e-5694df0b7193 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": "8c1b72df-2b2d-47c2-badc-8fbc37368e7c", "created_at": "2024-09-05T08:48:43.985660+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/8c1b72df-2b2d-47c2-badc-8fbc37368e7c", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.048378s] ... ok {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_on [0.070018s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.108846s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_497_node_history_get_service [0.078525s] ... 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-4bb6f1ad-a11c-40a2-83a6-ab0c4c4af351 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": "1d1fd478-d8f3-4996-88a8-6f1cd11b003a", "created_at": "2024-09-05T08:48:44.064243+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/1d1fd478-d8f3-4996-88a8-6f1cd11b003a", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.051794s] ... ok {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_reboot [0.053753s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.052728s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.023714s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.049047s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.019974s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_498_node_history_get_service_cannot_be_retrieved [0.076015s] ... 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-6dd794fb-007a-487b-b505-b8d71d4178d9 X-Openstack-Ironic-Api-Maximum-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.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.023649s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.053509s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.050416s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.022596s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.020007s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_499_node_history_get_entry_admin [0.077800s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/baf1de3a-b1d8-4d0f-8df7-fac0a2937e6a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d538a2c7-a0a2-480d-82a8-d44b9abca33b X-Openstack-Ironic-Api-Maximum-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.045414s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.023356s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.021174s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.044954s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.021019s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.123996s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_500_node_history_get_entry_member [0.074826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/38fa8b16-c49c-4067-a06d-d585abd7be46 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d19138f3-8462-45b9-ab50-37be989f3a45 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "38fa8b16-c49c-4067-a06d-d585abd7be46", "created_at": "2024-09-05T08:48:44.296668+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/38fa8b16-c49c-4067-a06d-d585abd7be46", "rel": "self"}]} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.035281s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.050237s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.030270s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.030190s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.047713s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_501_node_history_get_entry_reader [0.070555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/896bfb85-62af-490f-909c-df70d26c3064 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84dca031-262f-4938-bcfc-a0092bf907e8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "896bfb85-62af-490f-909c-df70d26c3064", "created_at": "2024-09-05T08:48:44.369178+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/896bfb85-62af-490f-909c-df70d26c3064", "rel": "self"}]} {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.087338s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.032925s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.050061s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.029030s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_502_lessee_node_history_get_admin [0.067149s] ... 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-807b0305-e793-44d1-9f3c-4b0fb10fb183 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.031435s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.051084s] ... ok {0} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.096993s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.030096s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_503_lessee_node_history_get_member [0.067609s] ... 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-77014cf5-efec-4a1d-bd11-8fbd1743f986 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.039696s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.029954s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.054728s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.029561s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.029376s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_504_lessee_node_history_get_reader [0.067392s] ... 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-e008cdd3-3f03-4521-8ffa-fe80e347af1b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.053535s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.037278s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.032661s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.026790s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.044713s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.047535s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_505_lessee_node_history_get_entry_admin [0.068266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b6cc162f-31a7-497c-828e-d0049a9046e0 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3690eba1-64b3-49bc-9467-0836debf108e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.034377s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.046002s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.052761s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.034970s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_506_lessee_history_get_entry_member [0.071956s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/459f37dc-4b82-4cf7-8b54-ff603f412a35 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-320d6853-2643-4905-8b24-961c73c6c4f5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.035372s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.052569s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.031365s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.089061s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.039347s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.028957s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_lessee_node_history_get_entry_reader [0.073978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/babc60ab-fb29-4ff3-b7b5-413647bf27a7 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5b575d6c-65cd-4b94-8f88-a7bf84b3dccb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.030586s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.039872s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.027071s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.038293s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.089927s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_owner_service_node_history_get_entry_reader [0.076118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/69ae1fde-894e-4ec8-878c-201a339b8050 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20a10383-83b2-4c74-b275-4b944d5839b6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "69ae1fde-894e-4ec8-878c-201a339b8050", "created_at": "2024-09-05T08:48:44.862136+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/69ae1fde-894e-4ec8-878c-201a339b8050", "rel": "self"}]} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.031445s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.040766s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.027840s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.028683s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.084273s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_third_party_admin_cannot_get_node_history [0.071248s] ... 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-3a4d0d8a-7818-42b4-ac2e-44bc3ebaae87 X-Openstack-Ironic-Api-Maximum-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.049970s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.034247s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.027951s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.048290s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_entry_service [0.072752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/537ae0e4-9913-46e2-9324-d121e6078540 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bcaa52a6-d827-4089-954e-47e890420476 X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.080671s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.032008s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.049859s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.031217s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.029670s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.049704s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_inventory_get_admin [0.079259s] ... 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-837bf2a1-670f-4ae2-9fee-a1c26cc0ee09 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.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.082924s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.034235s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.042956s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_512_node_inventory_get_member [0.073088s] ... 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-56912410-6fd4-41ed-8d8a-32adfc5ec9af 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"}}} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.043701s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.083952s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.036522s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_513_node_inventory_get_reader [0.076173s] ... 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-389b0848-72d4-40dd-a4ca-20f70fb1a161 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"}}} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.033562s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.087084s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.032310s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_514_lessee_node_inventory_get_admin [0.070414s] ... 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-ad527f30-8053-4b3f-a26e-109b6f291d2e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.032675s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.217245s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.034013s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.088460s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.040666s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.032079s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_515_lessee_node_inventory_get_member [0.073149s] ... 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-e299119d-9ea4-4f57-aede-82f7a354ec59 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.034231s] ... ok {1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present [0.043786s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.070411s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.039289s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_516_lessee_node_inventory_get_reader [0.070570s] ... 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-e022ebc4-5443-4f29-b972-d28e35c2d826 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off [0.055961s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.040878s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.089619s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_517_shard_get_shards_disallowed [0.066319s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d1a8610e-ea10-46f6-81b2-eeecbcf2bc3d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none [0.056323s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.041389s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.039754s] ... ok {1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode [0.044682s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.041188s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_518_shard_patch_set_node_shard_disallowed [0.073556s] ... 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-57690df9-ef2c-4520-b4a0-4a1829fb7490 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.055479s] ... ok {1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure [0.044912s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.049000s] ... ok {1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness [0.036719s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.056887s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_519_parent_node_patch_by_admin [0.076268s] ... 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-c3791d98-b478-4a05-b12f-eeb7f5c3223e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.051952s] ... ok {1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set [0.050262s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.047841s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.056072s] ... ok {1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported [0.038128s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_520_parent_node_patch_by_member [0.076047s] ... 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-7e9daf57-018d-4395-9b34-acae69b2c03e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.027811s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.039399s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue [0.066986s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.040993s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.038407s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_521_parent_node_patch_by_reader [0.080699s] ... 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-0fb1fa55-a165-4059-b94d-f4d780e5108c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.041063s] ... ok {1} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change [0.027556s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.083266s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.047380s] ... ok {1} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing [0.041790s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_522_parent_node_patch_by_manager [0.076702s] ... 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-2744b6fc-9e85-44ca-a29e-db1fa9f194fc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new [0.026917s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.043679s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.044268s] ... ok {1} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.026921s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.044056s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.048781s] ... ok {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.053599s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.040182s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort [0.086895s] ... ok {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception [0.054207s] ... ok {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.058981s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_523_parent_node_patch_by_cannot_see_node [0.256659s] ... 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-4c92d8cd-b7e0-4f8e-86da-d30495c61699 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [0.115897s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_524_parent_node_children_can_get_list_of_children [0.071165s] ... 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-33347651-21fe-446f-9631-521a4c47c93a 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"}} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.224226s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.051476s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_lessee_cannot_get_a_nodes_children [0.071212s] ... 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-1fa55e70-67f4-4376-9f1b-8f2dbf03d25a X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.256614s] ... ok {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.092659s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.043176s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.043505s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_526_owner_reader_can_get_firmware_components [0.071604s] ... 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-cede88ca-8a8d-4766-8c63-85d2f859377a 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.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.098377s] ... ok {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.089622s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.047665s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_527_lessee_reader_can_get_firmware_components [0.070283s] ... 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-63da660d-bd95-424f-b8ed-97c0dad03f66 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"firmware": []} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.047315s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.100399s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.044541s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_528_third_party_admin_cannot_get_firmware_components [0.067567s] ... 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-21fd3b93-caf2-408d-ac32-5f512871e110 X-Openstack-Ironic-Api-Maximum-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.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.041460s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_529_service_can_get_firmware_components_owner_project [0.072768s] ... 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-94d2a655-a588-41dc-9b41-719d95375363 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.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [0.094006s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.050136s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.022851s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.017258s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.045516s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_service_cannot_get_firmware_components [0.068012s] ... 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-c0bebc46-d21d-490e-ab4c-656e88a43451 X-Openstack-Ironic-Api-Maximum-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.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.053514s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.084106s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.045550s] ... ok {2} 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.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.056229s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.046906s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.082094s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.050881s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.043151s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.089876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ffa68334-b040-4284-9bae-36bd5e337bca X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode [0.045650s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.079852s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params [0.043808s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.090005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-90fd2d48-4bc9-4e08-9901-e481638d3a85 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.120933s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode [0.045856s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.082226s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image [0.036901s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [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-fe6e0a1f-0874-410a-ab0f-788c00afe239 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image [0.037373s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.077609s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.099692s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info [0.039539s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.047147s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.067705s] ... 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-224c9281-8188-4d5a-a173-46ce497acf40 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance [0.039707s] ... ok {1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.031031s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.089068s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.024291s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk [0.039664s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.066593s] ... 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-6f28c85b-2ee2-475c-9cfa-17a1685699e8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state [0.037482s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.026282s] ... ok {0} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators [0.032106s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.034850s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk [0.054875s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.064060s] ... 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-5bf78546-584c-4fa2-adef-1037cc130e33 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.027547s] ... ok {0} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state [0.040497s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image [0.042076s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.024533s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.030120s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.062601s] ... 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-16828260-6c16-4239-9a30-f835adc58bd3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.025638s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.026457s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image [0.048943s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.024983s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.025782s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.026059s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.026497s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.062787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4326ddb4-2453-46b0-87e1-426b429727d7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.027128s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image [0.071238s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.027377s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.028751s] ... ok {1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.030849s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.065978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c69d8c7a-a7c7-4ce0-a992-4ae375ea96a2 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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.030622s] ... ok {1} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.029396s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.069331s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.024592s] ... ok {1} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.026091s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.059813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c5aa3179-d0de-4bcf-8245-b2d4b01a74c8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.024427s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.028397s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.027030s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step [0.070395s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.024647s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.059910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a22990b-5178-4b16-a465-e7fbbc995e56 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.025694s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.060139s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.025541s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.060250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c7f747e0-0b07-45c2-a05e-97219a633846 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.033824s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.060011s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.033893s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.164624s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.063256s] ... 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-699105e2-e50a-400e-b293-6accf4d2207d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.031925s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.067550s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.058112s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.063365s] ... 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-59073bcd-a03b-4fdc-99ab-0e25b664c14e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.032623s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.061054s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.033663s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.063647s] ... 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-06b740e4-bfd8-4345-a580-59d45d694db5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate [0.047728s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios [0.039646s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.167959s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.066754s] ... 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-79439edd-79c5-4ee5-90e1-f746d44f736d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.026916s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection [0.036232s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.032516s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.067821s] ... 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-8a3fc951-1f1b-43e2-8b90-abd6877a617a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance [0.046993s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.194022s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.068255s] ... 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-d07ec83f-d71f-4efb-a982-f410a0c779f3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.032696s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver [0.046009s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.043131s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.054787s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.066362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-29df1820-be12-4c41-ae79-6a877f9c1d99 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.026362s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue [0.044216s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.026768s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.065050s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-81868de0-3f89-4eac-a5a4-ec2eb2aeff29 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.042282s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.036149s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list [0.024664s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.025667s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.064713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aa121941-3d2e-443e-ba07-d87a714110ea X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.026643s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.026442s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.023527s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.026175s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.355134s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.024411s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.065437s] ... 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-4abae1df-e54a-40c4-b360-e24b3ea98af6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.035840s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.025167s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.035285s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.025183s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.024332s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.026490s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.064413s] ... 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-c9f043b5-be78-4a43-aef8-4f7c8687c72f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.027837s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.040022s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.050045s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.028376s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.031809s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.025663s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.042426s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.065720s] ... 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-f1995345-b95f-4221-9e1c-0fdc317fd00b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.036818s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.028482s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None [0.044177s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.038773s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.031514s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.064546s] ... 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-e474d025-ec0d-4f5f-95f9-d5f9aee1680d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.036097s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.026830s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.025353s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.060501s] ... 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-4eaceece-6f00-4219-95f9-8b5c230a6c35 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.057776s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.030751s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.027722s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.039447s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.060776s] ... 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-89212917-691b-40c0-9f32-7280b867be2a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.028267s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.038539s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.024487s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.024015s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.039250s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false [0.225588s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.028166s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.034453s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.042441s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.068242s] ... ok {1} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.025838s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.040959s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.035717s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.057016s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true [0.042803s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.028288s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.223109s] ... 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-de981df1-d525-4c3e-a102-a4bfc2f96d10 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.023818s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.044024s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default [0.044436s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.025360s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.024830s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.060641s] ... 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-0a0ab0c5-4e81-485c-937b-cba41e0ea1b5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_create_node [0.022944s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.055477s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.029166s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.027084s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.023957s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.042959s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.062661s] ... 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-c4803e36-9145-4d16-8f16-61caa7e8f372 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.050266s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.026721s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.043218s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.023144s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.061541s] ... 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-9846b7ca-42e8-4f3b-ac58-d0d232d233aa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.021259s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.061518s] ... ok {0} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.044000s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.032104s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.022516s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.047326s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.021104s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.033130s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.065181s] ... 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-1120b8a2-f0ba-419c-bd0e-393cdc938c4a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.022529s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.026430s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.043717s] ... ok {0} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.021977s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.032487s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.064571s] ... 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-1aaabdcd-2197-42fd-a14e-e03d3f07b8e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.036621s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates [0.042649s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.041374s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default [0.040931s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.065595s] ... 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-f8d909ff-64e2-4d0d-b173-5736d3b6d0b8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.064575s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.042870s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error [0.042812s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.023071s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.023333s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.030358s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.025618s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.065391s] ... 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-5cafe275-a1e0-43a5-abc7-b4463f09a1be X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.045622s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.031998s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.040793s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.026211s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.048908s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.063701s] ... 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-04b2e85e-5d97-42d0-962c-df969ddd83f8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.032990s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.027604s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.029199s] ... ok {0} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.044430s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.039501s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.026951s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.062775s] ... 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-557471e3-075d-4b4d-8700-97bcd09a98ef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.047413s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url [0.037209s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.036307s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.062708s] ... 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-e6f119dc-bae4-4ed0-ab5d-518d16f2bd64 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url [0.037001s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.034428s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.022689s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.076712s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.041910s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.032454s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.063153s] ... 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-b98efbac-d8b0-4417-9711-9e0c36b389d1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.040856s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.038555s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode [0.024372s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.075796s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.063013s] ... 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-3d6b6746-c069-46c8-bf37-4553a8b9dcac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.025530s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.047085s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.024635s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.032644s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.024315s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.063272s] ... 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-1bc170a8-b3d5-4180-9f12-a55ddc8b901e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.087785s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.025406s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.050693s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.038115s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.063004s] ... 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-089d30c4-496a-40ab-a4b2-c64f749aac83 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.080442s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.040974s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.062191s] ... 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-bd5377eb-1b94-4462-9164-387c69a70fdd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.093020s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.040528s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.025975s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.038137s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.062085s] ... 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-f8dc1919-1e7c-4147-9840-b79e4cde5f1e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.031060s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.111298s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.026623s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.041784s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.029525s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.062138s] ... 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-c52c76e8-5a0a-4eb0-953f-cee82743b167 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.040733s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.032352s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.039108s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.031794s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.065928s] ... 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-62b23d23-860f-4e70-9b5a-00de931f98e9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.119922s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.033130s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.049620s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.035377s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [0.066567s] ... 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-b2afd339-20e6-4ef7-a034-3ad71b67555f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.035546s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.036410s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.034459s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.111070s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.031437s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.063119s] ... 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-70f8f387-36c9-4dc1-9990-724f8a4d8273 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.030478s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.026340s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.023959s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count [0.039183s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.064508s] ... 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-a0e630a7-3033-4df9-ae22-7dc0af9281b2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.026417s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.034126s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.024074s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.113012s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.023967s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.033894s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.066764s] ... 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-8a08710e-9457-43c9-8892-a498715d37bc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.040114s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.034942s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.027544s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.064472s] ... 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-2514340c-2618-403e-bf09-c78758f5d2f9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.039588s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.111798s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.035725s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.039144s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.036976s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.065983s] ... 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-b05d18b4-c2fd-473a-a175-e350beedef91 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false [0.042348s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.031220s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true [0.039861s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.032824s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.067513s] ... 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-30d91f1d-8ac9-4a27-ad7b-ad13ed5b32b2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.032493s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error [0.042714s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.063817s] ... 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-4f260777-e94d-4599-bafe-1d0756d7afe2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported [0.040870s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http [0.039964s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.238964s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.065504s] ... 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-165edea9-afa0-4def-9d20-25acedf9bd96 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.042303s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.063988s] ... 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-b36c5a91-194e-432b-9d46-851e6639b0d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.076502s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.043621s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.047716s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.224826s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.065971s] ... 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-09ef84ab-46d7-4ffd-a6ce-0e50bfd827ff X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.029824s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.086630s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.043933s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_twice [0.033083s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.066591s] ... 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-43816a2d-11a5-4b02-a4df-2b08058230c7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.043811s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.041391s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.084607s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.045309s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.036108s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.067707s] ... 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-d8973b5e-585c-448d-93f6-505ec3a41ee5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.040182s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.029225s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.023842s] ... ok {0} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.084773s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.062447s] ... 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-ee769526-768c-4a75-b77c-e6defa9cb398 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.041182s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.039269s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.046718s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.040954s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.068699s] ... 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-c0b601af-8408-475c-834c-c4f4e8fbcb05 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.098946s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.045856s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.034646s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_drain_has_reserved [0.027028s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.064620s] ... 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-4fe5ca22-767d-4a5a-ba1c-7efcfeae2cb2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.039972s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.022385s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.055255s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start [0.029728s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.034847s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.043201s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_put_admin [0.066402s] ... 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-a1f1c86a-dd27-4454-808c-beb05f0154f5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_rpc_service.TestRPCService.test_start_failure [0.032940s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.032782s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_no_rpc [0.030644s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.031918s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.022877s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.031971s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_member [0.079947s] ... 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-b51e32a3-6909-40e1-9324-2a4872b95022 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.023737s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspecting [0.032527s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_has_reserved [0.022796s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_instant [0.021666s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.030987s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.023725s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.033340s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer [0.091662s] ... 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-2b18b9e6-9681-40ce-8c10-389d579597a6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.031218s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.221006s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.029207s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.038018s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.025317s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.030026s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.039168s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values [0.023865s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.022666s] ... ok {0} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.189650s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.023937s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.025100s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.025636s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_vendor_passthru_methods_get_admin [0.245825s] ... 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-72065feb-1a5a-4eb6-aa74-48bc53720ee6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [0.026096s] ... ok {0} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.105198s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.025981s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member [0.061328s] ... 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-98795314-1a16-455a-822f-4b02b5274753 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.038384s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.026424s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.031259s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [0.040009s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_observer [0.062282s] ... 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-6937648c-e7ec-4eb4-a039-50ea7d4146e7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.031820s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.043342s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.031612s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_get_admin [0.060504s] ... 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-f1c50227-bf9b-4df9-a1e5-b8cf5ced6583 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.033815s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.045115s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.031398s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_tlv_value_hex_format [0.041802s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_member [0.070661s] ... 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-ac030c9f-a943-4cd1-beab-145964167267 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.038549s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.044026s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.036816s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer [0.065837s] ... 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-a387b16f-f7c2-4dd0-b024-32c9d2fa27b5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [0.044523s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.036195s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.037846s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_id_subtype_mac [0.043208s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin [0.063656s] ... 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-e61e0c5d-fdc7-4e64-91d5-93c8b83f5e59 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.036265s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_local_link_connection_already_exists [0.044752s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member [0.062024s] ... 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-b950d616-ac62-4f92-9adf-a6a38cf45cbc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.036074s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_valid_data [0.044744s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.036254s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.040744s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer [0.066729s] ... 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-6a863fbd-27ee-4f4d-87e6-83a5cf6171ac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.036801s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [0.043000s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.036877s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_put_admin [0.065029s] ... 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-64cc8795-5d09-437b-9436-9f9c734bcbf8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_reserved_options [0.036570s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.044356s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_serials [0.041550s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.044297s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_member [0.067281s] ... 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-6250bf89-ca02-4d48-9e2e-cfe1447d8be7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.040719s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.044891s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer [0.064000s] ... 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-bf015e1c-3bd3-4fb0-a6d2-2132ea94b06e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.040799s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_found [0.049681s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.022781s] ... ok {0} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [0.046386s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.023091s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin [0.065449s] ... 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-99a6e504-f254-4707-bbed-1881407e0231 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_no_pxe_fallback_to_all [0.024487s] ... ok {0} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.047762s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.023766s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_member [0.063832s] ... 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-eefd5fd2-b44d-4a4f-9b5f-8157e3dcee86 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.028791s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template [0.037292s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_exception_ignored [0.033756s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.038445s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_observer [0.065294s] ... 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-886ed362-efff-4a51-b0f7-add63090f904 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_check_inspecting [0.025783s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.038903s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_finished [0.024829s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.024257s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin [0.065676s] ... 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-495d5360-69fd-4339-a3a6-0435a54cf692 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing [0.037408s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspector [0.026900s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.020163s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.017247s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.017302s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_boot_clean_up_failed [0.046177s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_member [0.065156s] ... 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-b55b4797-499a-491b-93e4-c9d664ff4e5c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.018636s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error [0.028597s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.017987s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.017363s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_dont_store_inventory [0.026164s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.017651s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_observer [0.064912s] ... 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-f9a8ef31-3f8c-4e2d-9daf-e8ee29fa23ed X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.017901s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries [1.260613s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_managed [0.045258s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.017986s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.018058s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_managed_no_power_off [0.034369s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin [0.068187s] ... 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-476239d8-85e8-4a4b-bf29-644e14798ea0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.017821s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.018489s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_network_clean_up_failed [0.047752s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_member [0.067741s] ... 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-0662fb3c-c595-45a2-8565-b2b7eafd719b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.031353s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_managed [0.045680s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_observer [0.069779s] ... 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-0ad5e7f0-cc60-446a-ad26-7cb79283ff0c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_managed_no_power_off [0.036481s] ... ok {0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token [0.172128s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_delete_admin [0.063299s] ... 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-f34ed1f6-48bb-4f23-97c1-f423d7326a5a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_managed_no_power_off_on_fast_track [0.041403s] ... ok {0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.018402s] ... ok {0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.017101s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory [0.032578s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.026604s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.037593s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member [0.070462s] ... 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-3089a250-6fd9-4a9b-b717-9f35a94e1311 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_error [0.027497s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty [0.033515s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.027369s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed [0.034995s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_observer [0.069387s] ... 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-53a803b7-38e0-4ae6-92c9-e81339e4b077 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.042660s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.045883s] ... ok {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.038435s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported [0.036191s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_trait_put_admin [0.074824s] ... 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-d6c0f7d6-9775-4d46-bd57-44dc3b701864 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.040566s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.039320s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_member [0.065843s] ... 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-87749cc3-8369-4a1d-94f6-4b4c23c74bfc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false [0.037940s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.038360s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_observer [0.067964s] ... 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-c8df34d2-f4a2-4115-aaca-0cc5923dc41a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.038370s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.042620s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_delete_admin [0.068022s] ... 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-f12fab14-a205-4601-98b3-c1c3151c1a92 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.043328s] ... ok {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.221186s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_member [0.064921s] ... 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-8c403cc5-089c-4417-9648-71bea037df68 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.038294s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.049627s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.037747s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.039276s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_observer [0.075783s] ... 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-350c081b-1dac-40dd-84fe-1f749a1ec7ac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_update_node_retries_without_log_mock [0.836375s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.053831s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.042681s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info [0.039205s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_vifs_get_admin [0.066486s] ... 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-99cfe8a5-be80-4a57-9997-6c0f6ad9d57b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.039466s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.056055s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.039361s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.038056s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.040952s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_member [0.062461s] ... 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-0a82b665-c850-423e-b020-3db0b3742b50 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.039908s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.035987s] ... ok {0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps [0.055329s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.043841s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_observer [0.064822s] ... 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-e07fb276-6a51-4176-8b28-ca6056f31367 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.036619s] ... ok {0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip [0.038587s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.035963s] ... ok {0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.041510s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.050769s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_post_admin [0.070061s] ... 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-39a9e07b-1ab7-436c-a911-deab196c76af X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.037447s] ... ok {0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.036270s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.049936s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.036741s] ... ok {0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.034743s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.037491s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_member [0.066078s] ... 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-6e3a59be-4c78-41c9-b3a2-fffaa1d186fe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.034303s] ... ok {0} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception [0.036280s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance [0.054710s] ... ok {1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.084582s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor [0.025481s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.055448s] ... ok {1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.049836s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.035962s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.036373s] ... ok {1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.054973s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.068240s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.021117s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation [0.037146s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.031791s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.038266s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_observer [0.233964s] ... 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-03f30ec7-255d-4a25-bacd-2d069fc7da0a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.024094s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.069964s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.019454s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.040704s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.020133s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin [0.063030s] ... 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-dcf65f5b-5d3f-4c49-80db-26b5d3d3a6ff X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_lenovo [0.052438s] ... ok {1} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.021829s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true [0.041316s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.030269s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.041415s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_member [0.064567s] ... 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-22c03070-b193-444b-a2af-3ef53e89bd09 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.063936s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.032415s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false [0.028336s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.030691s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.033494s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer [0.063469s] ... 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-ebc9e1b4-c1e3-4ea0-a7a0-d11ea540fafe X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.065288s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.032884s] ... ok {0} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.040184s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.047628s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_management_indicators_get_admin [0.062431s] ... 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-a4ff7860-fe98-4a31-81e2-160c3c42feff X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true [0.039668s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.077842s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.017467s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.052198s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_member [0.067796s] ... 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-053dd8b0-ca92-43b7-8f87-c7f118517796 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.048514s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.075310s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer [0.069303s] ... 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-b85d4258-038c-4519-93c7-916cb9277ddd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.048726s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.073489s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.050006s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {2} 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. {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.019755s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.018229s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.077443s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.056220s] ... ok {2} 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. {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.036228s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.047337s] ... ok {2} 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. {0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.036771s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.071490s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.023581s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.050282s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.020625s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_112_portgroups_get_admin [0.064087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c9ebc160-d92f-4072-be7a-f3ed99695fdc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.024031s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.073152s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.051765s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.023271s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.021603s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_member [0.058686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-60615e6c-d7e5-422c-87bd-704df264638a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.023721s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.057499s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios [0.068814s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.024378s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_observer [0.060832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3354034b-aa07-4318-9489-6e4bc7d57322 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.024714s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.048691s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.023531s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.069191s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.025738s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.046718s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_post_admin [0.066856s] ... 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-de017fe8-7cce-4b67-814c-6d29847cc12e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.025815s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.063037s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.049715s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.029115s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member [0.067407s] ... 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-c92ceb40-eed9-48cd-ba15-0c0d0f853c9d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.025457s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.026467s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.056649s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.076450s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.028281s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_observer [0.070159s] ... 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-f32fbccd-3e57-41a4-8007-508fd487ca4b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.049074s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.026689s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.027129s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.079015s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_detail_get_admin [0.061744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1fdc3ccb-1c91-41c4-93c1-52aca184348b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.055658s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.028655s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.025685s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.048421s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_member [0.060402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9432a478-4a99-44bd-9989-a13175c526c7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.026844s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.081972s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.022958s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.049646s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_observer [0.060160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5da79faf-7e63-42eb-a1f6-098b6112266e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.068186s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.048358s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.040510s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin [0.065218s] ... 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-16c3ec3c-1f79-4ca1-8ff5-8839c95d040d X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.039756s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_member [0.067660s] ... 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-3eb2bd20-4c6c-45c1-bd65-4fe9bd2b8bc2 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.040677s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.200071s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.040747s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.028498s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer [0.066642s] ... 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-2fd4ff26-7f3d-4cac-8180-e10b302aea68 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.027530s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.043334s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.027239s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.045836s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.023040s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin [0.070565s] ... 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-93e71fb6-6ffb-485e-9ed2-c360e1113007 X-Openstack-Ironic-Api-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.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.248195s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.028449s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.040729s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.052775s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.025871s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_member [0.069291s] ... 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-4baedc79-48ab-4b4a-a353-6135daf51b81 X-Openstack-Ironic-Api-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.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.026232s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.038374s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.026850s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.026026s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.025894s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer [0.071488s] ... 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-bdcbb48a-c74d-4d8e-8a90-fdb6eb83f7fe X-Openstack-Ironic-Api-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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.045183s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.027453s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.024292s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.024173s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.025483s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_delete_admin [0.070757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b9b9b8e4-0941-4a1d-8b55-7925a01e3ea8 X-Openstack-Ironic-Api-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.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.029907s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.028429s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.028808s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.025454s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.026207s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.222799s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_member [0.070640s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bbfd1d54-6167-469f-a184-c76a44aaec5d X-Openstack-Ironic-Api-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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.035017s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.028283s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.027271s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.025637s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id [0.053644s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.030505s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_observer [0.073913s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-16ae3f5a-838f-4f73-96c6-4aa1cf42a820 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.039355s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.050470s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.025152s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.025236s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local [0.040702s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.048284s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_nodes_portgroups_get_admin [0.067402s] ... 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-bbd57c51-0f54-47cb-b58c-dde8bab7ef72 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.029068s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.042442s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.024271s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.051615s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.022964s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.041926s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_member [0.067850s] ... 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-93cbe0b7-5cf7-4f89-8b05-90b72828d828 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.027467s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.048349s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.023755s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.025865s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_observer [0.065490s] ... 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-4a8814b3-dcfd-448b-8f9e-7ab8b92bbafb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.068231s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.024669s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.027851s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.047346s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.026011s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.064588s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_detail_get_admin [0.068066s] ... 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-f9479377-247c-45f9-b592-5a1e26d6f4d4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.023332s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.051605s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.027068s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_member [0.063934s] ... 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-60fd8ab8-0c88-4055-a203-996f6dd54199 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.028201s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.071044s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.053775s] ... ok {0} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.025497s] ... ok {0} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.019859s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.046459s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_observer [0.064874s] ... 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-000c1dd1-95ab-4e56-96db-e54bf8f6cf2b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.067428s] ... ok {0} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_list [0.028746s] ... ok {0} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.017382s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.048664s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin [0.062297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c17ef092-702a-4172-9841-1662fe3a9553 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure [0.035225s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.070511s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.048062s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure [0.034138s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.026732s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_member [0.064265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8b77923e-a6af-45ab-8c17-7efe18304af7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode [0.034427s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.027156s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.078476s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.027688s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode [0.042119s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_observer [0.062843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-94e4a5d0-6d06-4d08-85e4-dd7a7120c8c4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.027626s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.047964s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list [0.038319s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.025634s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.041694s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk [0.032081s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.026158s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin [0.069590s] ... 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-67f33fbe-1f49-466a-a8ba-37e6a28f5d67 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties [0.024731s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.025889s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.024273s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware [0.042546s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.071825s] ... ok {1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.024858s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_member [0.067870s] ... 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-4695076b-72b2-478c-be7a-48440686f977 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail [0.034279s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.056136s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.057324s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu [0.042514s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_observer [0.066501s] ... 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-7220fddb-54f2-41c2-914c-856340b09d7f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu [0.033934s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.054923s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.068370s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin [0.063509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b0d4f72f-f8cb-4f4e-bf42-b1fa9e4d722e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_gpu [0.043081s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.050223s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_supported_gpu [0.042239s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.069746s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.051237s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk [0.041388s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.068056s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports [0.041956s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.054757s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job [0.024403s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.047547s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail [0.024374s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.064205s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs [0.023931s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail [0.023709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_member [0.232846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e5b9e05f-4bf9-46ab-aa8f-f437610df8a3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.054036s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.068350s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue [0.024132s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail [0.022951s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.047882s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_observer [0.066107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a3040922-6a94-4ec4-9bcf-ec42a909e757 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid [0.024031s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.034786s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.068787s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix [0.023938s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_name_prefix_invalid [0.024672s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.034054s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_port_id_get_admin [0.069029s] ... 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-14b62fe9-fb2c-4ceb-bc4b-326516ccb45f X-Openstack-Ironic-Api-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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.032995s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.066264s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue [0.039511s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.034839s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device [0.032519s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_member [0.068715s] ... 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-de0be071-8c79-4095-9825-8edea1769cdc X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.068693s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.037516s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.046694s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_observer [0.074050s] ... 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-72fac813-eee3-4aaa-a221-30551253c4ea X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.066534s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.048288s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.059961s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_patch_admin [0.071630s] ... 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-e8ab09c3-1775-4897-a2b7-348d21df972b X-Openstack-Ironic-Api-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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.047474s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.020113s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info [0.192791s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.018010s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties [0.022879s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.024739s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.050069s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_member [0.068686s] ... 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-bc3c9f1d-5065-48fd-b387-d34b3a310267 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_invalid_json [0.026175s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data [0.037738s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.029933s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_200 [0.025066s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices [0.031713s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.029132s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_500 [0.024966s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_observer [0.071230s] ... 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-312decaf-192a-4397-8d47-b7ca0ca72ab0 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.030650s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_known_good_state [0.039583s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.025067s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.029473s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.024159s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac [0.038091s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_delete_admin [0.068058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8576da76-ef11-405c-b744-36858eaf40a8 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.024234s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.032511s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.023728s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.028571s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device [0.047458s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.022975s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_member [0.065138s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5520b821-bdc1-4f6e-84a7-296bf127385f X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail [0.037554s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_fail [0.038886s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue [0.050071s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 [0.028709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_observer [0.065536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-66311d37-ed17-4848-b66a-560da7c4be46 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 [0.027832s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_success [0.047455s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.055489s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.024860s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 [0.028440s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.025686s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level [0.027968s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_nodes_ports_get_admin [0.068946s] ... 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-9f3f7bf7-7a43-4d7f-8055-7e215aeaba17 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.056670s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all [0.029159s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.041780s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.029403s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only [0.028984s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.025889s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_member [0.064128s] ... 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-2f046b25-9c42-4542-b5a0-7e0032001298 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.040223s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only [0.028556s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_match [0.022687s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.037489s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration [0.029392s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.023067s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.027550s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_observer [0.064210s] ... 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-5b354b46-7b46-485f-86a0-8c90914b834e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps [0.029765s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success [0.025457s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.033300s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success_out_range [0.022751s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_pending_delete [0.029586s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_detail_get_admin [0.066569s] ... 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-3ff78bac-78f4-407f-a74d-e82e9578f97f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level [0.029788s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.038786s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb [0.028449s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.033945s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_less_than_actual_size [0.034129s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_member [0.066133s] ... 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-486dab18-b01d-4ab6-8fc6-58ab19ed9d24 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.041978s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__validate_volume_size_requested_more_than_actual_size [0.037095s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.039321s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb [0.029091s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_observer [0.067501s] ... 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-2e720ba8-e305-436e-bb97-eabc291819fd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.047164s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed [0.050472s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.226079s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_portgroups_ports_get_admin [0.071164s] ... 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-1fa967f4-b38d-48e9-a034-a9a8e84f000d X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.048646s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.041701s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_with_delete [0.053647s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.033024s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.042849s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_member [0.072624s] ... 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-59dd2737-e55d-4fec-9532-d5cf4f6c17ac X-Openstack-Ironic-Api-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.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_delete [0.049114s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.050364s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.053246s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_nonroot [0.050745s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_observer [0.068482s] ... 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-06777432-c19a-4474-9636-9e36ce5f1b40 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.043574s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac [0.051237s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_without_root [0.049279s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.051934s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_detail_get_admin [0.068814s] ... 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-a7af6943-6ec5-4987-aef0-f08189d88eb6 X-Openstack-Ironic-Api-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.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_failed [0.045239s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.051057s] ... ok {0} ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success [0.045212s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_member [0.070255s] ... 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-fc90a8d0-2069-44dd-9e13-971c7bddb4c7 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.024017s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__change_physical_disk_mode [0.034953s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.023714s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_with_config_job [0.031688s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.023401s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_observer [0.068609s] ... 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-8cc89167-0242-45ac-ab84-fc211cf2e6df X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__commit_to_controllers_without_config_job [0.033497s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.023622s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.233217s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.021995s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config [0.027932s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_volume_get_admin [0.059845s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-158bc0d7-1e91-47eb-bf64-cb82b22e9062 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.023096s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config_fail [0.026526s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.022957s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.051918s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config [0.025866s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.024122s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail [0.024630s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_member [0.059185s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-289e56aa-94ed-44d3-b404-7c53a56f6ad0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.023550s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_change_physical_disk_state [0.026908s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.024396s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.076460s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config [0.025853s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.024344s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_observer [0.063579s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f2ff5954-e6d2-4975-b39f-58b36dab95c5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config_fail [0.027112s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.022139s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.051201s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config [0.025871s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.037952s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin [0.064393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-78a6d8be-f933-40b9-95da-34468bb8183b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail [0.026854s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.051759s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_realtime [0.025388s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.050699s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot [0.024816s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_member [0.062466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-77122bf5-8ccf-4c2f-b638-7670cc9fa81e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk [0.026079s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.041704s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.074756s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail [0.026578s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_observer [0.062953s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cc551d51-f1f3-409d-a6fe-ffdba3dfa06b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.041760s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs [0.027143s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.051513s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk [0.025723s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.044810s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail [0.025312s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_post_admin [0.072663s] ... 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-48885c8e-a297-4323-95e4-64d56557917c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.053979s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_list_raid_settings [0.027679s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.045996s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_set_raid_settings [0.026249s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.046679s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_member [0.071622s] ... 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-d45e731d-e9cb-4988-9e1b-483d387ff0fb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.078934s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_foreign_drives [0.061713s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.042167s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.052552s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer [0.070611s] ... 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-b706a3fa-128b-4113-a3c7-f76827baa234 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test__execute_foreign_drives_with_no_foreign_drives [0.054444s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.047607s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.055503s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration [0.046872s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.047797s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_volume_connector_id_get_admin [0.071343s] ... 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-c9bcdd2d-a585-4c01-9ee4-0376965bd555 X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.058436s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.047561s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing [0.071834s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member [0.068739s] ... 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-429f943c-5ece-461d-8cab-9c7ceaa995cd X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.051141s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.049240s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.024227s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved [0.058894s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_observer [0.067448s] ... 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-9587874c-6936-4bd1-891b-715cf2447094 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.025275s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.060087s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.024076s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space [0.056744s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.024045s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.056753s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.023256s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_patch_admin [0.072865s] ... 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-a2d283a8-cfd5-4417-9f21-d437663f5613 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled [0.055786s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.024633s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.047931s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.023612s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_member [0.068811s] ... 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-109d8278-0bcb-4450-9393-59c5a6984879 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.024239s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean [0.066015s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.024472s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.061873s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.023344s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_observer [0.068043s] ... 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-a3366d0d-e441-4f54-9c1a-62a854819428 X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.051674s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy [0.069402s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_delete_admin [0.066460s] ... 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-bd7b404e-c1c1-4a36-b384-e93289dd37c3 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change [0.060334s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.065868s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_member [0.064722s] ... 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-7bceb61d-a307-49ec-9d87-17c0785060dd X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks [0.065837s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.067181s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.185032s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.023277s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_observer [0.064810s] ... 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-72aee98a-1a46-4e95-aa49-d246b97bf690 X-Openstack-Ironic-Api-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.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size [0.067991s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.023330s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.068140s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.022333s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.021560s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.051276s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.021680s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks [0.069045s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.022777s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.049578s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.023810s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks [0.053790s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.022803s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.045748s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.022077s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.022121s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers [0.063480s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.022675s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.052648s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_targets_get_admin [0.231863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-778e1d15-5454-4bd9-92de-cdf2848f209f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.038001s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks [0.056586s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.058611s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_member [0.064240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5bccc652-8e1c-421d-b1f8-8563d181c703 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc [0.041175s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.021812s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 [0.068374s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.055058s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.022944s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_observer [0.065191s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-773a8615-e4ef-4c41-8ac2-d0fb2cbed368 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.023231s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.056174s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.023311s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level [0.070267s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.023707s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_post_admin [0.069222s] ... 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-94071120-592d-4f89-9734-0c6b50c23f85 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.023104s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.057418s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.023113s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_physical_disks [0.070509s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.023022s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.049088s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_member [0.067368s] ... 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-548ffc5e-c326-474e-9575-887349cb94dc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.023413s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.022683s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks [0.067903s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.050608s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.023059s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_observer [0.072662s] ... 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-53a8240e-3a47-4930-bd4f-a84cbb4012c9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.023533s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.050229s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_without_drives_conversion [0.070372s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates [0.049787s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_volume_target_id_get_admin [0.068621s] ... 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-318e6260-9fab-4976-86bd-f0fd0f005b37 X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.052106s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_clean [0.059815s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.049551s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.041201s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_member [0.066751s] ... 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-8a5ed79c-5583-4f5c-bcea-065b38dad5ee X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [0.041966s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_in_deploy [0.064180s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.048207s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.045496s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_observer [0.068086s] ... 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-88d91b61-d532-4638-86d7-090034986ec2 X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.044519s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change [0.057899s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.052763s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.045793s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_patch_admin [0.071519s] ... 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-0c98e4e9-8ca8-4262-96e9-7fd7940a62e7 X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.038924s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.051389s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.040943s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_member [0.068339s] ... 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-2a06c8b1-48fc-4b9d-8f67-75ffa7c97408 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.049111s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.043684s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.053002s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_observer [0.071428s] ... 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-404bc165-2bfa-4c03-90df-7e2758fdde8a X-Openstack-Ironic-Api-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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.043145s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.042190s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.040704s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_ehba_mode [0.254067s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.041429s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_delete_admin [0.070792s] ... 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-c03418d6-37ea-4e4e-9d68-76e50f5273b1 X-Openstack-Ironic-Api-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.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.043759s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.041085s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_with_mix_realtime_controller_in_raid_mode [0.067833s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_member [0.063950s] ... 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-aa8c760f-f54c-4c66-ab6a-f977be6aeaab X-Openstack-Ironic-Api-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.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network [0.045071s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.056616s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks [0.049104s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.043713s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_observer [0.064124s] ... 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-ebac50da-b04c-4bd9-bb32-95aa969fb035 X-Openstack-Ironic-Api-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.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device [0.035277s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.059319s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.048280s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode [0.035727s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_nodes_volume_get_admin [0.060078s] ... 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-50be3030-47c1-44d0-afa9-0bb4cd656261 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.043772s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.044523s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties [0.035329s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data [0.031848s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_member [0.059359s] ... 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-00d4b9d9-b574-4357-973d-8c26cadb7430 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase [0.050636s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data [0.043110s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices [0.035695s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.032741s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.044508s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes [0.034233s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer [0.069765s] ... 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-60360333-cdc0-44b6-bc53-094228390220 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.044458s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.038151s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi [0.041750s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.037906s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed [0.045775s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail [0.040286s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_connectors_get_admin [0.074971s] ... 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-65019fd9-2925-41a3-a38d-28521a66850a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.038399s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.043509s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device [0.045922s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.037631s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_member [0.067649s] ... 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-7c269d6a-4672-4d96-8b86-3a6842603d03 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail [0.041801s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.040086s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode [0.040060s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.040002s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_observer [0.065099s] ... 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-7b88b61f-8723-40ab-b096-0b68466a19a1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail [0.042256s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.040843s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_targets_get_admin [0.065311s] ... 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-9cf3114d-0acd-4b68-abd9-7010535cf1a0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate [0.033702s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.040462s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.213737s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state [0.035973s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.047011s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_member [0.065020s] ... 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-2a596b43-b944-4c56-9fe6-d79243e7dcb1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties [0.036504s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.045725s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states [0.032895s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.048550s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.044122s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_observer [0.068264s] ... 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-90f7c3a2-8ad3-4135-82a8-6bd4fc3ebbb1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state [0.046828s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_boot_mode.BootModeTestCase.test_boot_mode [0.050175s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.045464s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_drivers_get_admin [0.061113s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-05fda0b2-a882-41df-87fd-9d428d4704a1 X-Openstack-Ironic-Api-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.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail [0.042655s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.048540s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach [0.046541s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached [0.045784s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.041224s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_member [0.060001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6d23cc6f-5848-4347-b876-7f8935e1990a X-Openstack-Ironic-Api-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.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach [0.046196s] ... ok {1} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout [0.042876s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_off [0.041282s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list [0.043664s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_observer [0.062118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9703f337-0093-40e5-9063-1e42b3fa98f3 X-Openstack-Ironic-Api-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.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate [0.036851s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.042254s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [0.054900s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.048439s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_no_data_received [0.040860s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_driver_name_get_admin [0.064074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8cc4ebe2-48e5-43f7-a383-50c1d5691a77 X-Openstack-Ironic-Api-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.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.041073s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.057709s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.057738s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_member [0.057981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-86059479-9364-41fb-807d-21ccb6525269 X-Openstack-Ironic-Api-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.drivers.modules.inspector.hooks.test_physical_network.PhysicalNetworkTestCase.test_physical_network [0.059539s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.045328s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.059541s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer [0.058788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8e3c6692-81af-4fd4-89b0-d08b3d31ddb9 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.029268s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.053163s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.027484s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_properties_get_admin [0.058150s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1c66dfe7-3fff-441f-a960-fc4cebfed38d X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.029364s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.053361s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_member [0.058910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c77e5ca3-fdb0-4896-9ffe-e940d1e74d6a X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.054126s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.043665s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.050894s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_observer [0.058082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-739ca0a7-89cf-4b07-a08b-f9e7b2b124d4 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.058490s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.221534s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [0.055988s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.046003s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_raid_logical_disk_properties_get_admin [0.059255s] ... 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-50d7f91a-d339-4622-b399-85cf3135bb3a X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_duplicates [0.057262s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.054859s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.055524s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_member [0.058541s] ... 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-c8a7a777-895d-42fe-8d76-5384ae8a31ca X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_all_match [0.050691s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.049625s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.057886s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer [0.059328s] ... 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-6c881ddc-268c-4b86-ac35-7881e5c03561 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.052133s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.049637s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.053273s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_incorrect_hint [0.042062s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin [0.057270s] ... 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-e017c1ec-1ca7-4c9a-822f-e2d79420d7a4 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.045681s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_local_gb_without_spacing [0.055775s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_member [0.058078s] ... 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-186d843e-4da3-432f-a6a0-4b635af345dc X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.074385s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_no_hints [0.044835s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_create_all_components [0.087439s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.067581s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_one_matches [0.046314s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings [0.053035s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_root_device_skip_list [0.043427s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_get_properties [0.033458s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_invalid [0.037421s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.049392s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.121240s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_string [0.048548s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_observer [0.216339s] ... 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-33987d52-93c2-4488-be14-a9a438b1d788 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.042556s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_zero_size [0.046883s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.073515s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_get_admin [0.056656s] ... 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-6ff9a51d-ec19-4518-9545-246631da5f3d X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.062733s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_ok [0.050273s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_member [0.057143s] ... 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-508edcf6-d97d-4933-9714-348915f73ce3 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.066714s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.065621s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_unversion_url [0.051058s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.023584s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_observer [0.055659s] ... 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-1b978dc3-1863-4dda-b0ea-de71cdd65747 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.061945s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.052897s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.049890s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_post_admin [0.057557s] ... 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-efb32ed5-8653-4b8f-af62-fd92753cb8e7 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.047566s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.070924s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.044305s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_member [0.056616s] ... 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-3f3d77ed-ba7d-4178-93d1-48dd84f773e3 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.061951s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.034304s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_observer [0.060305s] ... 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-f1566629-43d5-44d1-935a-0e0678dbaa99 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.032868s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.053152s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.032053s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin [0.057258s] ... 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-08d94f3a-29c7-4d09-a5ab-c3ac79bdea33 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.043489s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.047551s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.035761s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_member [0.058570s] ... 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-be97f7b0-fdb8-4ef3-9e9e-7d796fbddcca X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.048567s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.036767s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_observer [0.058058s] ... 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-13aa119d-fae7-41a9-b9d3-e81d3dc9ff40 X-Openstack-Ironic-Api-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.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client [0.314934s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.048481s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.051283s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.051143s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.051037s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.047155s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.049233s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.044979s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_nodes_bios_get_admin [0.062820s] ... 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-90b788e8-54f2-4060-87a6-e9dbe656e447 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.050130s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_member [0.063669s] ... 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-e20141c0-c2d0-46f1-96af-0d187fd54129 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.041969s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.026729s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_observer [0.062782s] ... 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-a1052b3d-f33b-4fbe-ae0c-e0019b02de8e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.022349s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.229197s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin [0.063680s] ... 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-41caf778-96fc-4eae-93d6-44ba51c8b82d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.048197s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_member [0.062028s] ... 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-0f7ff463-0e75-475c-9f9f-edb5ce03f993 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.048331s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.023242s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error [0.023224s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer [0.063249s] ... 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-0d357162-a5ba-4362-987d-718760cd6e30 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.024022s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_connection_problem [0.511555s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.218863s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.025233s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.023915s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_conductors_get_admin [0.061016s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-02e82cff-aa9c-4468-9131-9b972f7a1636 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service [0.026139s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.032300s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error [0.024041s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.024894s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_member [0.057809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3260fdd5-7d68-4216-8a53-ab94ab5da317 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.047112s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.026827s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.020743s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.024183s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_observer [0.058726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bfff865f-84b1-4d5b-8ddd-1f4430c79c98 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.034178s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.025953s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.031156s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.035397s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_hostname_get_admin [0.058249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2a9b9251-3ed7-4022-be68-59ef0fc55ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload [0.034762s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.027579s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.023962s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.032709s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_member [0.058220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-02736c0a-cd4e-4c92-9bb4-8325241e78d1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.026571s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.036241s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.026145s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_standalone [0.322283s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer [0.059144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b265f08d-c5db-471e-8a81-54b34334d465 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.025664s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.037487s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.023960s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.039726s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.033801s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.024893s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin [0.068417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-65ea2e9a-4fc6-4442-bc99-646f2063a885 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.037428s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.036299s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.025983s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.025152s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.032568s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.039440s] ... ok {2} 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. {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.027824s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.033826s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.023864s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.052033s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.021529s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_observer [0.064898s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cc56395f-e892-482d-bb7a-9395f48aea32 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.027494s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.038101s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.050750s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.022601s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.023830s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.022266s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_get_admin [0.062683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c4dd826b-6276-4379-b00a-e2d43587b554 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.025624s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.044403s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.024129s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.024836s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.022081s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.047462s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.023467s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.021841s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member [0.060849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-04f3c2f8-0def-4692-a102-88bf8740128a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.022741s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.021131s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.046016s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.024503s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.021002s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.020053s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer [0.060243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8d4de2ee-d03d-4b49-a895-29e7b7d9b9e0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.028526s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.022665s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.050576s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.024118s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.021211s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.023738s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin [0.061294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d6ad8684-a9be-4416-a0ca-4c6ed88f996a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f6ec3d7f-ff82-4bf0-abb1-b6ec315acee0 X-Openstack-Ironic-Api-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 d6ad8684-a9be-4416-a0ca-4c6ed88f996a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.042035s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.023195s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.022504s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.072426s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.047983s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_member [0.059277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/a161bbfa-0851-49c1-9456-690f9c4608bc WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-797db04c-bad5-492b-b315-cf4e3a727a99 X-Openstack-Ironic-Api-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 a161bbfa-0851-49c1-9456-690f9c4608bc could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.024436s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.022709s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.022586s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.054227s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_observer [0.059532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d71fe35a-5122-448b-af5e-68a43548a164 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-41f715ec-3b2a-440e-a51b-cb7d8595631b X-Openstack-Ironic-Api-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 d71fe35a-5122-448b-af5e-68a43548a164 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.074650s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.023861s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.045125s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.023759s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.022642s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_patch_admin [0.063145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/c09d5a2a-7678-4596-8e95-061053143b54 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-863fb549-e8c6-401e-8899-99871ff85b8c X-Openstack-Ironic-Api-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 c09d5a2a-7678-4596-8e95-061053143b54 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.070786s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.023996s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.048681s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.023655s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member [0.065659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9d95369c-302c-4c41-993c-e5935d73eb7b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9db1ce3b-1d1e-4f7a-b998-58d1abe84798 X-Openstack-Ironic-Api-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 9d95369c-302c-4c41-993c-e5935d73eb7b could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.023563s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.052648s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.070400s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.024988s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.019974s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.025725s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.053710s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.020994s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_observer [0.064419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/c0d97a4b-d01f-42d2-8c34-facdba867a98 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a49450d-a975-4c3e-b837-97b55592b6dc X-Openstack-Ironic-Api-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 c0d97a4b-d01f-42d2-8c34-facdba867a98 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.025419s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [0.024296s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.041155s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.055462s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.023521s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin [0.064283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/629d47bf-dcaa-4e9e-931d-bafefbb134a3 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-985ea358-4a59-4b0d-b585-a2c1b27a827d X-Openstack-Ironic-Api-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 629d47bf-dcaa-4e9e-931d-bafefbb134a3 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.041524s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.024196s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.051774s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.022580s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.021715s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member [0.075976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/973ac971-f5e7-4fbf-bc3e-7be2fb03b7f3 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-36f3f5da-da29-4bde-b936-785ed2c86b0f X-Openstack-Ironic-Api-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 973ac971-f5e7-4fbf-bc3e-7be2fb03b7f3 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.022844s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.057998s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.022082s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.022273s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_observer [0.071020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/316d6a6c-8a4b-4521-84f1-ac4cfb9a02a8 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-60862a82-c160-4f3f-bd58-d1223b2556dd X-Openstack-Ironic-Api-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 316d6a6c-8a4b-4521-84f1-ac4cfb9a02a8 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.058589s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.023587s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.021345s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.054015s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.032480s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_nodes_allocation_get_admin [0.074622s] ... 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-0c6d9dd6-57c9-442e-aa45-671157801358 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.032434s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.059493s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.255774s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.033042s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.034704s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.033179s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.045710s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.032432s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.059411s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.054191s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.033271s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.032017s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.046751s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.062261s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.033669s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member [0.232648s] ... 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-9094be40-a938-4647-aa0a-93f30dbbd762 X-Openstack-Ironic-Api-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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.049399s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.063296s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_observer [0.065442s] ... 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-0674f02e-4e41-46d7-bf96-9da7b8a417d4 X-Openstack-Ironic-Api-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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.056956s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.059440s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.045654s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_delete_admin [0.064214s] ... 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-f60ca764-ac19-4195-b122-0a9fe564786e X-Openstack-Ironic-Api-Maximum-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.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.058914s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.052226s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member [0.063086s] ... 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-395eddc3-ca9c-4f52-87c1-97509a7da304 X-Openstack-Ironic-Api-Maximum-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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.045846s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.058974s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [0.235110s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_observer [0.063259s] ... 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-6d2eb788-8f2b-4d8f-9019-a1a6ae25b472 X-Openstack-Ironic-Api-Maximum-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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.052501s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean [0.051589s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [0.047042s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.043607s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.049023s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [0.045609s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin [0.064799s] ... 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-87d79e83-487d-415a-9fca-4761217d4b66 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.038892s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.049468s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_default [0.058064s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.037606s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member [0.065912s] ... 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-53a0596c-1a31-4a45-816d-a061fbee1a0a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.051040s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_ipmi [0.049049s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 [0.039300s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_observer [0.066073s] ... 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-d3b75399-04c4-4e64-926a-db7ef34d9a3a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean [0.038420s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.052531s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_redfish [0.050281s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy [0.037075s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.031936s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_get_admin [0.059560s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b5be4e3a-262d-4adb-9ce7-d6f18210309f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.050334s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.045281s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.042220s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.051105s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_member [0.062177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8b9044b3-4b79-413d-8a39-c68878e067f4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.046967s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.054189s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_observer [0.059341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9e90990f-69ab-4c6e-89dd-cf3cbe098055 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.046152s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl [0.053515s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.042399s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_deploy_template_id_get_admin [0.063735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e2f6f735-4bf7-4ca4-92e6-04460ff9d913 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8606a9fb-ae95-4d7c-98ee-1731f5a5e202 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state [0.044930s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.052698s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member [0.061806s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/674e8f5f-4e9a-4920-aa87-e58301441ba2 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b9e6a39-528a-4a4a-be3d-2059e07f08ce X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.222424s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.039718s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.053154s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_default [0.034056s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration [0.042945s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer [0.062425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/bc89e3f6-ab96-48fa-8bc7-1a89573616fb WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f882c445-aa47-438e-a13e-c7ab94bd1c97 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.033430s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.056793s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.040905s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_redfish [0.039290s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_patch_admin [0.064321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/03ef956d-ae04-4279-a305-052acdf7d5f1 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5e856c20-ded4-46cf-9f16-30738a509eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.054689s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.045245s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_ipmi [0.039920s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.037190s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.050199s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member [0.061379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/94678be6-5490-4701-8831-c503812d426b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-96ece14d-d7ba-4eee-9715-39c23977e74d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_redfish [0.039934s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.039809s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.034111s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr [0.053254s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer [0.061039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d51f41e7-2db7-4631-9906-2d9516033a2c WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e0c813f6-98d3-41c4-8752-6e86bc5ea323 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.038642s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.036569s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.037837s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component [0.053377s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.039747s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin [0.057137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/9b4070e4-e013-457c-95c0-8d09ba1447cb GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-adbc89df-b72a-4d1f-93b2-ccc05c697de2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.039391s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.051215s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.040638s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.038245s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_member [0.061334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/6cc346b0-ed57-4a52-94fd-90404c06dec2 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-09f81f3e-bdb5-4b9d-abfe-6aff7f8407a5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.033211s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.054860s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps [0.038727s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.034586s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer [0.062079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/a7444e56-5418-49e9-85b2-7ba712736c97 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9d390704-993c-4b0f-9602-bc677fb59141 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.038300s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.051606s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.042159s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail [0.038474s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.037268s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.052196s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_chassis_post_admin [0.068217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-24fbba8f-0ae6-4486-812d-9c81c8a32380 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.039849s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.043867s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode [0.044075s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.038888s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_member [0.064871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f867cbb5-e448-4db5-893c-016673d61af8 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.050197s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.045512s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.041377s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_observer [0.066952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d3b20c1c-e9b1-4557-a3e3-dbbb0864ad3b X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.050384s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.050253s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 [0.041856s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.031369s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.038080s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.051285s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin [0.062964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b8b60ef9-036b-49ff-b575-77c1bbbb225d X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.032697s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.039946s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.036585s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image [0.023766s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.055205s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_member [0.065689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1a397423-df53-49f7-a632-40ebb3390c54 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.023713s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.041267s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.044828s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.022463s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.021448s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_observer [0.062940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-24bad80a-724e-4dce-b061-bf8a779cf51e X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.048191s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.044324s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.024052s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http [0.021347s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.046181s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.043249s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.022721s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_detail_get_admin [0.059607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3d4880a0-3022-40f1-9299-60ba2a266ea6 X-Openstack-Ironic-Api-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.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.023639s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.046606s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.051305s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_member [0.068503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-199009f4-8834-4901-9a23-2fd11bf24be0 X-Openstack-Ironic-Api-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.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps [0.049338s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.045247s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.050569s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy [0.043624s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer [0.057134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fd6387c3-c819-4e22-99ef-1fb5e4cf6643 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.046980s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.050154s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy [0.048914s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.050493s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_chassis_id_get_admin [0.057145s] ... 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-2b27e886-9dd6-4eba-8298-4801302e7bda X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.051256s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface [0.045664s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.060005s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_member [0.056791s] ... 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-79617e9b-7636-4c85-8f2e-5bd3c615d544 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.053318s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps [0.044667s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.018349s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default [0.022782s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.058599s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_observer [0.058294s] ... 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-72785c85-eea9-4233-ae82-27f0677faf3e X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.062980s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.024981s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.040832s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set [0.022509s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_patch_admin [0.061711s] ... 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-7550a6d4-09a6-4ca9-a41c-12196b3a38f3 X-Openstack-Ironic-Api-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.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.018252s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.034528s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.065711s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.018107s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.016584s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.034745s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.016774s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member [0.062253s] ... 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-d6e42373-cb1a-47e5-bcee-2ffe159c5fc1 X-Openstack-Ironic-Api-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.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.017814s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.059114s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.036466s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.027674s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.032453s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer [0.060426s] ... 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-723d657d-c523-40cf-be21-e3d99427ed23 X-Openstack-Ironic-Api-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.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.028668s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.052030s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.033181s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.031999s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update [0.048957s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_delete_admin [0.056061s] ... 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-0211da26-192b-4791-9f75-ef9b8581d1ad X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.034288s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.033034s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.030905s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.031213s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.052439s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_member [0.056787s] ... 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-b98c094f-2523-46f3-8357-9e6e4c19c5f2 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.032035s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.033493s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.030708s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.050986s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.031778s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer [0.057063s] ... 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-2412ee71-3ced-4b93-aa17-1cbe49cbb0a7 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.031381s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.023798s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.052456s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.022018s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.031952s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.021856s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.030767s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.021606s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.052213s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.022123s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.031974s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.021832s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.031583s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.052558s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.022852s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.033071s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.022478s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.022215s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.031721s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.022842s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin [0.224685s] ... 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-76d0c7e0-bab5-45ed-b6b7-a3652fbb626b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.023469s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.022236s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_member [0.062763s] ... 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-df5fb89a-b6b6-4708-a713-49527cb6ceac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.024308s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.022972s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.022795s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_observer [0.063215s] ... 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-49ba9d7d-4393-4d56-b15d-bbeef51633ae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.023412s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.023351s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode [0.243343s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.197786s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin [0.064590s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/964b706d-7440-4d75-aee6-220eae39e6b0 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-00775db2-9599-45e5-a177-ae6aed001a7a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.036941s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.031250s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail [0.053959s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.036897s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.032383s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_member [0.066024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6f081015-ab29-4c57-a00b-e72415631342 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-87699ab6-c021-447b-9eca-dc006340e21d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.025853s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.031236s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.063845s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.023634s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.031098s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.024595s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_observer [0.068786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d81052d1-5105-4999-98ff-d4ebdaea761d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49810b8b-18b8-4c38-93bb-3d9163366598 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.025361s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.031239s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.064507s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.028231s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.031735s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.027100s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.030682s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.061748s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.027897s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.029106s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.060313s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.060548s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.087144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-69728693-d02f-473b-8c4c-cf67d7211e89 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.034173s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.027778s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_whole_disk_image [0.060812s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.061793s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.024450s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.021799s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member [0.089242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-45fb8613-fd4e-49a8-b6d6-56111b6bfc50 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.049699s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.025651s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_normal_boot [0.084609s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.066613s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.088674s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-19ab0e11-30ce-48a0-9db0-325be6e7e7cd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot [0.062681s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.120713s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.063218s] ... 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-454cde41-e5b3-4feb-b455-4ecbed2474bb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.069058s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.063204s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.064158s] ... 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-a4dc742b-9839-498e-b2cc-0a0f2356c9ce X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.065743s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.064239s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.062892s] ... 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-76131b14-e98e-4e4a-bd9e-ef3a85fbf1df X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.065780s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.064234s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.041981s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.057772s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.063119s] ... 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-1a6c6b56-0552-4e6e-bd70-b71582c71989 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_no_debug [0.048433s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.255935s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.059402s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-58aa382a-fe57-4608-955e-e90df3ef717e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.059958s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_with_params [0.054415s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.052992s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.063455s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a47a3a0c-6931-4270-93ef-b6cb9b1cda05 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.063184s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.034998s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.053286s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_correct_vendor [0.032892s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.059426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d92318e4-6bab-4dc6-9ad7-779ff296b720 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.065483s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_errors_with_lack_of_support [0.034167s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_inspection [0.031722s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.057805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2e9bbc64-c9cb-43be-b621-c07f3b58a164 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.052062s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.107462s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.033769s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.052794s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.058089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b343190a-0304-4c61-84a2-fe1362dcd3c1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_local [0.033779s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.055744s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_missing [0.033223s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.056192s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.061811s] ... 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-af762862-7ce3-4c27-9eb3-f39473e2af09 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.055210s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none [0.050505s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.054385s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.031832s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.060964s] ... 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-c5ae32d9-5ae4-4951-a308-67f779f0fbcc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.054506s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.031776s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.059106s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.051843s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.064156s] ... 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-ee0484f2-29f7-49bf-8dfa-dc42fca63b97 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.035814s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.054907s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.054467s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.064075s] ... 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-1d2fe82f-9a17-49e7-b4d9-018b49fd69dd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.051335s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.053469s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.063322s] ... 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-ec346b82-98a4-4e0e-a15f-eacf7b1b87fa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length [0.049809s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.043727s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.046721s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.062281s] ... 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-be373e15-2142-4595-b2e1-5a8b872a3ac9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.043600s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.209530s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean [0.048896s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.043067s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.060583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a8e7318d-1ae7-43a9-b767-6c0232b29c56 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.047902s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.052735s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.045841s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.056913s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.065591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2edacb88-ba8a-4b0b-84e0-ed3a5ac337fa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_part_img_checked [0.045008s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.051848s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_frequency [0.053073s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.042996s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.061596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-336effd6-1960-4ab8-ae2a-b98be15b4a36 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.050622s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.043202s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_instruction_set [0.052319s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.049289s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.061627s] ... 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-6e6814fe-442f-4db3-a0db-3c37d55336bd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.043953s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.050191s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy [0.052188s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.043469s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.060819s] ... 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-f624391f-ace0-4cab-91db-2eb9181aee68 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.050290s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.020524s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.037934s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.018168s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.034206s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.060476s] ... 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-1b4f89a6-477f-4bb4-b57c-8ba0435334b4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail [0.025789s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.050816s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.018919s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.043587s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.022884s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.047063s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.062494s] ... 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-571859db-476c-4d7f-9c77-3711852367d8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.024204s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.045839s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param [0.022608s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.049311s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.023419s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.063440s] ... 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-9a423548-b890-477d-8e12-fb073d23a446 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.045344s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.035843s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage_and_storage [0.049292s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.041194s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.033488s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.067423s] ... 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-a1f31bfe-ce22-4c19-9e2e-d3baa1b2ca5e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.049742s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.043073s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.035167s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.033371s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.050712s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.035430s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.065203s] ... 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-f07370a0-913c-4585-a30e-7766d573a2a5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.035764s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.035269s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.046857s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.034891s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.067650s] ... 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-96c20181-4a2e-4199-95a7-2cb2891e20c6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.061513s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.053019s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.035868s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.032053s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.069154s] ... 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-92b95e8b-d2ba-4ec6-a3b7-f49db51f8afa X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.060913s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.055476s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.034692s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac [0.049878s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.056519s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.033604s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.067899s] ... 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-7e8a2040-b082-4d18-aec8-6bc9170656a4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.034753s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.058473s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.066227s] ... 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-eb25315f-5df5-4d9d-bd12-b7bc3e47ba17 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.036831s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.032240s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.053683s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.069561s] ... 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-5f72bd42-8f0e-41c0-9447-2e8c427202df X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.033009s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.051386s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.032939s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.031615s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.050561s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs [0.234953s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.033961s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.052815s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.033397s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled [0.058873s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.032511s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.058224s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.033124s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.057978s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.227497s] ... 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-41366004-fe61-4a0c-a8b2-0954b8cc505e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.035284s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.061813s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.047293s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.033041s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.033930s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.063910s] ... 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-e11f2883-055a-4de8-8c47-e06847632995 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.033194s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.055470s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.032814s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.051666s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.062332s] ... 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-8881d600-8190-4abc-bfb0-92aaff3ba731 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.054668s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.034489s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.052303s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.031374s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.053826s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.064776s] ... 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-096bad88-b28b-4e11-a04d-c8c8c914a368 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.033705s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session [0.051980s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.030533s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.061587s] ... 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-736d73c5-48d5-492d-adfe-d44cb9200075 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.032291s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.050089s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.031007s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.062777s] ... 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-0aa3f7d0-5f6e-49bb-918e-0646029337d5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [0.052604s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.033822s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.031463s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.049668s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.062097s] ... 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-b7301696-67d7-4a32-b7ff-46a1a0c77419 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.033085s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.033231s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.061169s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.250615s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.060934s] ... 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-a0b9a567-69ba-413c-a63f-a7e707681ca0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.031933s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.045714s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.049618s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.032437s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.060265s] ... 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-8f575872-0bcc-4f67-8a46-87d4de9c1616 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.048453s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.051773s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.063939s] ... 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-68d0f1e2-1c11-4054-9d9a-81a4bde12824 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.052375s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.066051s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.063073s] ... 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-ff7082e0-524d-4194-9587-198e06355ac3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.053620s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.062127s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.047476s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.061582s] ... 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-98ecce50-d712-4594-9653-b45c660fbedc X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.214105s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook [0.030300s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.066006s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.031758s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__get_post_step_hook_no_hook_registered [0.030710s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.062081s] ... 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-bc84561e-c2a6-4171-a8a8-967268c83516 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.039114s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.066530s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot [0.050044s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.063541s] ... 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-11f2932c-cf8c-42f5-b591-916ce5ebecf7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.040302s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.051210s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_deploy [0.048048s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.031714s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.060086s] ... 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-d27bac34-b46b-406c-8f33-be9a9e52b97d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.031758s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail [0.040182s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.052147s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_deploy [0.040153s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.061330s] ... 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-c0b22edc-163e-4302-83d2-2f6bcdd12572 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.059024s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.076347s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail_servicing [0.045555s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.062369s] ... 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-d9c368ac-5720-4ebe-b33a-42a1234f703c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.061016s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_pregenerated_token [0.049826s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.075273s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.064050s] ... 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-17396988-45bc-4946-af21-14baaba42c41 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.051047s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance [0.044882s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.042126s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_clear [0.022598s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_boot_instance_no_power_on [0.043218s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.050565s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.023520s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.061348s] ... 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-5db6e72b-b78a-4cfc-a1e1-843542fecedf X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_replace_with_empty [0.025023s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot [0.039125s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.061041s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.062300s] ... 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-2d3310d9-1cad-4af7-868e-125059d16551 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.037580s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.035737s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail [0.075439s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.059268s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.060386s] ... 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-9097f06b-006a-4a0a-a8ca-2d15cc7e5870 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.038914s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.042378s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.062544s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.038194s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.039147s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.061688s] ... 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-8ace1e69-080d-421e-91b9-a1b592b101ea X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.HttpBootTestCase.test_http_boot_enabled [0.035263s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.038902s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.065207s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.062872s] ... 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-3c80d018-646d-424c-8310-fe27fc7988c3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk [0.067115s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_memory.MemoryTestCase.test_memory [0.051703s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.062368s] ... 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-7ea09704-a44f-4bec-b693-b7c4a9514438 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.065265s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_added [0.078114s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.063258s] ... 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-d70cb291-968a-40da-b3b6-164fe426fe48 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.064187s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_lenovo [0.218071s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.066661s] ... 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-980228d0-e994-4c30-9617-4b032018fd68 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_all [0.085396s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid [0.039150s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy [0.083572s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.062662s] ... 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-24e92397-c3ff-4961-a617-c603fa8d45e9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid_whole_disk [0.039426s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.050537s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_non_software_raid [0.038351s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_present [0.102355s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.064794s] ... 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-03ed1886-2886-4d46-b39a-e9777749d33b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error [0.052731s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid [0.051183s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.076379s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.063725s] ... 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-bf54f9b5-90a9-47a4-bae7-afabdd32099d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.051245s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_bios [0.050495s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.043025s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_put_admin [0.063704s] ... 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-db780f79-a60c-4fac-ab5c-661dc5ffd440 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_bios [0.050150s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare [0.067248s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.046097s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.027007s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi [0.049851s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_member [0.065790s] ... 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-4db1344f-4c9d-4054-9881-4093f3febb95 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active [0.048881s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.032592s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.051534s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning [0.048646s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.038358s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_observer [0.064287s] ... 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-417bd8d7-99b6-4071-9b6b-819bbf233c2a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.029275s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.050602s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_properties [0.026167s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_vendor_passthru_methods_get_admin [0.062610s] ... 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-15dbc449-4af2-4a09-abc3-2f1d64876cde X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.027573s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_reboot_to_instance [0.089895s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail [0.078441s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.044732s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_member [0.062455s] ... 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-314dda00-11d8-4eea-b725-05b771d0ae07 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.053626s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_uefi [0.040731s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.031925s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.052351s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... SKIPPED: bug #2025424 {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image [0.040754s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_observer [0.061997s] ... 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-ea5107ad-b4f1-4326-b8df-83385e40f630 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.036457s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image_bios [0.039106s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.059037s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.038708s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_get_admin [0.062653s] ... 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-99c45cd8-ff17-4a63-8701-58f2069e3b8c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_with_prep [0.040657s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.045201s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_post_clean_step_hook [0.024133s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.061295s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_member [0.061943s] ... 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-47f5529a-5022-4aa6-9192-29119b2c2949 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.038688s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot [0.044498s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.046682s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_observer [0.064640s] ... 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-765ab70b-2922-4019-ad7c-e4684783316b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails [0.046454s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.051756s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy [0.080492s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition [0.043876s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_post_admin [0.061980s] ... 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-f3e1b9d4-8b3b-4b78-92dc-40d2655d7c92 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.052958s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... SKIPPED: bug #2025424 {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network [0.045983s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.090831s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.051872s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_member [0.065214s] ... 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-afb1534b-9b50-4904-ae77-a97c1f22916c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.052207s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_switch_to_tenant_network_fails [0.091281s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_observer [0.063485s] ... 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-42552270-3259-4279-9cda-4f01984d6450 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent [0.047584s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port [0.123820s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.068805s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_get_power_state_fails [0.046535s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.042175s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.061972s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.042060s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_no_power_on_support [0.045703s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.039382s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.064660s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off [0.046777s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare [0.056306s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed [0.046562s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_put_admin [0.235071s] ... 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-ec4ca047-b715-4953-9bd5-5534cfa9cc8d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active [0.047741s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_member [0.065120s] ... 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-1d2fa567-021b-47b8-9069-2b765a5c44c7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.129378s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_off_fails [0.078128s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning [0.045309s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.026972s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_doesnt_complete [0.045478s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_observer [0.061809s] ... 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-5997dcbd-cdb6-4553-b6c0-06861a5e6f94 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [0.047569s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_fails [0.046478s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk [0.086076s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_delete_admin [0.067690s] ... 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-730a5b1c-6bcc-40d6-ac5d-c8da9bba96d9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.052121s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_soft_poweroff_race [0.050694s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing [0.060558s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.043635s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue [0.047333s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_member [0.069666s] ... 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-4ab75442-f402-4ba2-9249-0af18186c078 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning [0.047170s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.051585s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result [0.046825s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.025590s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_observer [0.067954s] ... 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-d0c2c4ef-87bb-4308-8b19-d7ea392e04ca X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.027382s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc [0.046235s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.034002s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result [0.044858s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_traits_get_admin [0.068416s] ... 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-fbea08a2-a680-47cd-954a-467c5763c1ef X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.048516s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_member [0.067858s] ... 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-a43c9cf3-46f6-49f8-b6a4-c87a24edce75 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.103805s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure [0.040004s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate [0.235436s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.043083s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception [0.040260s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_observer [0.066151s] ... 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-28873191-e494-42aa-a58f-3f4eebe8bda0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.043594s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested [0.042730s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch [0.046558s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_put_admin [0.071314s] ... 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-0206671b-0462-4f77-88ca-50350a0f87de X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported [0.039266s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure [0.037947s] ... ok {3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [0.046047s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.021941s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_member [0.071674s] ... 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-7294f7aa-25ee-48dc-a4c7-9db2e0c01363 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception [0.038486s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.025430s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.022897s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested [0.039763s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.021798s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_observer [0.076429s] ... 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-fb687f1b-4bf3-4dfe-a124-5f9d11a481e8 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.021951s] ... ok {0} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported [0.041300s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.021302s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.021367s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.048182s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_delete_admin [0.064422s] ... 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-72717e9d-a0dd-4184-87fe-e428f95a00cb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.295423s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.024100s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.021111s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.047855s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.021303s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_member [0.064990s] ... 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-103ba0dd-518d-45bd-b452-ad65cf26726e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.022664s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.047219s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.022184s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.102570s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.020347s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.022016s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_observer [0.065734s] ... 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-98c4a36e-21fd-42b8-91c3-d6ec3b87652e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.019325s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.024290s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.046944s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.019987s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.024805s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.021868s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.045605s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_trait_put_admin [0.072726s] ... 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-4b19c9a2-2532-4207-9764-f284cbd8cae9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.024254s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.022102s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.043698s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.022492s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_member [0.068648s] ... 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-569cfcb4-5a92-4b69-be21-8fe13884b4c0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.043035s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.024595s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.021888s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.042695s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.022884s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_observer [0.068464s] ... 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-782c0037-672c-4c2e-9118-d2e70f0437ac X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.204162s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.023179s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.043617s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.019658s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.023526s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.018458s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.022611s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_delete_admin [0.064623s] ... 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-d8852223-da3b-46d0-90a4-520bf193dd8f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.019328s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.024099s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.019048s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.023981s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.018837s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.018266s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member [0.066694s] ... 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-5854c292-0dd0-4026-bff1-b3821f249f1a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.024667s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.109380s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.019465s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.022983s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.018444s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.035659s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.021423s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.020009s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_observer [0.066053s] ... 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-57742a4f-1f1c-4327-a11b-238a33bccdc1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.026005s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.018630s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.039240s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.019219s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.026289s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.034179s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.024141s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.022103s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_vifs_get_admin [0.066477s] ... 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-794d22a4-c3bf-4a11-9994-7b7540ebfcd2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.025847s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.049137s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.049249s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.023900s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.022550s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_member [0.064969s] ... 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-86b25211-3b26-478f-9bb4-c6ae0679dc40 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.050721s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.023507s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.053687s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.021607s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.041954s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.021958s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer [0.064871s] ... 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-2c1dd3f5-c363-47b7-94c9-77507003be9c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.048243s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.022562s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.048232s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.022785s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.040465s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.020968s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_post_admin [0.067196s] ... 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-cf790340-e83f-45dc-83f6-9173cb3e998f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.039655s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.022542s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.050341s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.021023s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.020569s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.046528s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_member [0.066645s] ... 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-614683fb-3bf1-4d5f-9984-eab6c5bec7da X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.049294s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.023384s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.043966s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.025072s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.047696s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_observer [0.066716s] ... 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-0496cfb7-33ae-4f32-8892-e6cedccf71d2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.022019s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.022388s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.060038s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.050669s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.021473s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.021213s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_node_vif_ident_delete_admin [0.067632s] ... 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-870f439e-f325-46dd-a8ff-f236a4d1a3a4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.022038s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.051007s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.062516s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.022534s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.020318s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_member [0.063756s] ... 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-39d75e1d-94aa-40c1-8a00-426919d067b0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.049868s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.022758s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.068282s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.021716s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.048287s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source [0.026468s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_observer [0.064652s] ... 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-88ffcc59-0a14-40bc-b106-5f0c6d844b15 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.023629s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.025139s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.021420s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.048285s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.022158s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id [0.027554s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_management_indicators_get_admin [0.066705s] ... 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-928b1d5c-691d-4c7f-9d7a-a209ab0faeba X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [0.024309s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.026495s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.048299s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [0.023343s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.026414s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.021650s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.024670s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_member [0.063957s] ... 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-e4025c4a-7716-40d9-a025-c53c5df464ec X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.046948s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.023389s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot [0.024763s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.022503s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.023177s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.022636s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.055302s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_observer [0.065363s] ... 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-9cf572ab-cd1a-4688-8073-f861b6241e61 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.024807s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [0.025187s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.022112s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [0.022825s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.021837s] ... ok {2} 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. {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.023484s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.021803s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.021410s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.022279s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [0.022268s] ... ok {2} 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. {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.022310s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.023508s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.019916s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.159862s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.020879s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.019831s] ... ok {2} 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. {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.019605s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.018372s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.018204s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin [0.067789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c4c0b4f9-aa63-4f3c-941b-1466297809d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.018736s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.018011s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.018405s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.146018s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.019409s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_member [0.070376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dad0997c-1bbb-47af-b8a6-a303519a902b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.018915s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.201918s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.018291s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [0.023239s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.018515s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [0.023338s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_observer [0.061324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-420ed8d6-38dd-4beb-a4bc-d96efcf797d1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.019354s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.018865s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [0.025634s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.022588s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.030728s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.022742s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.154297s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.030404s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [0.026093s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.032404s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [0.025192s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.026776s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [0.024779s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.023857s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.023946s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.022551s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.023227s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.024108s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [0.025178s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.148624s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin [0.238181s] ... 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-c9d94651-e5cd-452d-9d44-d1a7d2d324ff X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.025818s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.025009s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.021818s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.025594s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.022286s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.024402s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.022490s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_member [0.075408s] ... 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-99bf3db4-7964-418b-afe3-5d090db9328a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.024803s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects [0.025134s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.020358s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.018799s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.022036s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.149306s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.019427s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.022638s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_observer [0.071410s] ... 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-9114027b-09a9-48a2-bf43-3e03283c9168 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.019342s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.023938s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.018907s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.051719s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.024136s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.019922s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_detail_get_admin [0.065030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4833b18e-e235-4413-929e-1c53ca602391 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.018918s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.024313s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.018230s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.050296s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.022966s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.019264s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.023221s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_member [0.058580s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d0192300-0705-4c13-b64b-1c4efd0e1e62 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.020074s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.042614s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.023576s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.020967s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.023243s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.019092s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_success [0.040722s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_observer [0.060458s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-03cbf3cc-a5e6-4b9c-a004-5170f793a069 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.020526s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.023937s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.019589s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id [0.024115s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.044301s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.023030s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client [0.025904s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.019787s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_portgroup_ident_get_admin [0.067052s] ... 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-f36ff600-b76f-479f-9159-379318bf6571 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.042947s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info [0.027314s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.019945s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.018608s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config [0.027446s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.043112s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.019498s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_member [0.065754s] ... 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-876a0db9-2cb8-4b3b-8ec5-3ec34114e995 X-Openstack-Ironic-Api-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.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port [0.027724s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.019717s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config [0.024741s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.045758s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id [0.023435s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_observer [0.067100s] ... 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-91506b13-f385-405e-8c89-13acfa5a210f X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.044486s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device [0.041429s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.041146s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none [0.039914s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_patch_admin [0.069301s] ... 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-0de3af9f-1cb4-448e-8224-d617a2feccd6 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.042405s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail [0.042337s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.190297s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_member [0.066723s] ... 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-a5d19a5f-1e49-4926-9ff1-37925c0dc295 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning [0.050218s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none [0.042444s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.019860s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.018515s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties [0.024914s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.037802s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.018837s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_observer [0.067788s] ... 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-bbbf3128-7822-4bb3-88b5-70b9e262ecee X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.018393s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.036724s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices [0.041134s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.042076s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device [0.041700s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.043609s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin [0.066697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-de810f15-f039-47b2-a1d5-9d1bcd112c65 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors [0.028719s] ... ok {3} ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail [0.044917s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.027210s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.024650s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_member [0.066285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0858f615-e761-4a35-b1d4-d8ef8702e248 X-Openstack-Ironic-Api-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.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate [0.042114s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.024489s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.019031s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.025996s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.017389s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.017502s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_observer [0.065400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f927598c-86af-4989-9c58-8dc10d269bbc X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.026388s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.019875s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.026984s] ... ok {3} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.018837s] ... ok {3} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.018190s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.027737s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_nodes_portgroups_get_admin [0.064884s] ... 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-b53c60f3-cae9-4c14-adef-d7677aa30a22 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.020067s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.026096s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.019136s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.252441s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.019373s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.028106s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member [0.062559s] ... 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-055b0a70-4b8b-4101-a334-8c5e6f1ee033 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.019796s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.026826s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.017470s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.052035s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.018407s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.030035s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.018291s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_observer [0.065232s] ... 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-c965cbcc-5db9-4394-b5ab-e41b4f631f4c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.026382s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.019603s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.048365s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.027710s] ... ok {3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.024888s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.029196s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.026353s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_detail_get_admin [0.062397s] ... 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-5aee4b47-103f-4547-af2e-ba50a1e40781 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.039382s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.039057s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.026817s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.027863s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.029380s] ... ok {3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.040842s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member [0.062835s] ... 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-886be37f-2dd1-42a4-80c3-c7546ed7ca6a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.020993s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.031988s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password [0.032723s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.021334s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.027582s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.020031s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_observer [0.069816s] ... 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-e597aebe-605c-49d4-b219-7432a2ecdd06 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.027337s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.020454s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.020684s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.026463s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.019872s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.026371s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_ports_get_admin [0.066396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-250d84ae-ef16-471f-842c-7e3a6304174d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.118868s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.021898s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.027281s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.020321s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.024968s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.023217s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.059840s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member [0.063157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cfe3b3dd-e613-40e8-ace9-7745edc916d2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.026627s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.028104s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password [0.025751s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.049708s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.043007s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.025644s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_observer [0.062116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2284597c-ab63-44cc-b0a8-69946289cddd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.026535s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.050439s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append [0.043183s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.025570s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_post_admin [0.067783s] ... 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-bc0fa82b-5fb8-423a-9ed4-e78ba5011dd9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception [0.025185s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.043037s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password [0.024480s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.023983s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception [0.023995s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.023608s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_member [0.070045s] ... 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-a8e0dee2-f230-4289-ad04-f1228305b4e9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception [0.025186s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.025965s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.127467s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password [0.025800s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.025135s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.023358s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception [0.025669s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_observer [0.073832s] ... 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-73f84f64-93da-4d34-9451-2bf1894dfa96 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.025513s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.040201s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.088753s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.026601s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_detail_get_admin [0.068159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b1e844f-cbdf-47eb-8aa4-ee9ed18612b5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.025021s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.024110s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.023836s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_member [0.062296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-00a44e9a-d2be-485e-99b7-29a1894dc06d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.024860s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.114491s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.025190s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.023984s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_observer [0.065007s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-85fa6f9c-94a6-4d98-ac29-03e00831351c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.024380s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.024713s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.227141s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.113124s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.025275s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_port_id_get_admin [0.068958s] ... 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-ff906639-e124-4e59-9bd3-ee6392fa73a1 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.025386s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.046640s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.025018s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_member [0.065475s] ... 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-2e6099a6-ce36-407e-8712-0ab2ca789957 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.024729s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.047626s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.025452s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability [0.023271s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.119892s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.026234s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_observer [0.066422s] ... 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-4b7e0aed-1f86-4035-8be8-be4e40bcc438 X-Openstack-Ironic-Api-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.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.024516s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.025037s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.025882s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.044459s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string [0.022904s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_patch_admin [0.070777s] ... 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-fac58b08-20ce-40c2-8a4f-8f88a0990c37 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.024840s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.024851s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.025528s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.119833s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.025770s] ... ok {3} ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces [0.038243s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member [0.070399s] ... 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-c8136336-6b6f-4b47-9ea3-c7ff81fd92c8 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.026369s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.023964s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.025941s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.021376s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.019490s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_observer [0.070073s] ... 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-284a7353-2241-4d25-9d11-2011596fd635 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [0.041974s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.022943s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.124729s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.020116s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.027565s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.020606s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.025456s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_delete_admin [0.065502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea0886a4-8185-48a0-b1a7-b340fb169be9 X-Openstack-Ironic-Api-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.objects.test_conductor.TestConductorObject.test_list [0.023003s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.025776s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.021971s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.025287s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.098417s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.021836s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member [0.063083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c671e530-34c6-4de1-9830-b13718a280e3 X-Openstack-Ironic-Api-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.objects.test_conductor.TestConductorObject.test_register [0.024889s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [0.042041s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.023055s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.021321s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [0.041107s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_observer [0.065032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c99e037a-b4f9-4f7a-a2b1-2783b3b398c7 X-Openstack-Ironic-Api-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.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.024883s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.022559s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.122979s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.021518s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.021780s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.022936s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.021648s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.022453s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.113747s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.024084s] ... ok {3} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.016925s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.197547s] ... ok {3} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.017302s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.054024s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin [0.220380s] ... 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-fe5dbe1f-b39e-4f80-8e16-e5f6d7b9fb44 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.028401s] ... ok {3} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.018734s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_create [0.019906s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.027560s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.021082s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.028094s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.069417s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_member [0.063728s] ... 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-0b542f60-e6fb-4ebf-98ab-e42de688b8a9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.022882s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.027624s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.021439s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.026752s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.021529s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.056538s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer [0.061643s] ... 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-caf758d0-e374-48d5-b2b8-ed233b14ace1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.027634s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.027955s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.024824s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.053215s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.037988s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin [0.062316s] ... 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-3b3b57fd-7098-4ae3-8889-bc8bb773f7db X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.023541s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.020159s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.034573s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.060710s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.021429s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.032347s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_member [0.063791s] ... 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-69132ed3-8168-4d41-925f-069db02d041f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.021624s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.020137s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.030755s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.021241s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.069954s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.031922s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_observer [0.063022s] ... 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-b045376d-f61d-4e96-b216-b561ca95c5f3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.022588s] ... ok {3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create [0.021453s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.033266s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.052803s] ... ok {3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.022879s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.034125s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_portgroups_ports_get_admin [0.068071s] ... 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-faf7ad78-c762-4854-9110-0e23a26c03b8 X-Openstack-Ironic-Api-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.objects.test_node_history.TestNodeHistoryObject.test_get [0.024410s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.033070s] ... ok {3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.021441s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.060923s] ... ok {3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.020241s] ... ok {3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list [0.019685s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member [0.076486s] ... 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-f77a90d8-cb0f-4452-8685-7aa4fe74d8c6 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.047535s] ... ok {3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.021569s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.067246s] ... ok {3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.021293s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.052656s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.022707s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_observer [0.074637s] ... 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-7c6156f0-89b0-46aa-a143-48e8731572d4 X-Openstack-Ironic-Api-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.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.024780s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.065587s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.018859s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.054531s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.018201s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.016547s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.037563s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin [0.073524s] ... 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-9729709a-23b9-414e-a6d7-e590ed55bb5c X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.060780s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.019425s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.016641s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.042207s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.017749s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected [0.016219s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.062160s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_member [0.069350s] ... 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-54448d47-1413-4018-a36b-6025982eab27 X-Openstack-Ironic-Api-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.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.022332s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance [0.051898s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.020901s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.051458s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.020866s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer [0.066525s] ... 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-c3febf9a-4439-4f0c-957c-052dd47b179f X-Openstack-Ironic-Api-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.objects.test_notification.TestNotificationBase.test_populate_schema [0.018971s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active [0.056288s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.018527s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.052546s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.017798s] ... ok {3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.016412s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_volume_get_admin [0.064230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4c33983-c75f-4c70-8ec7-00589088db65 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.065109s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.023081s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.055246s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.022943s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_member [0.062001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-036b78ee-07fe-4ca2-bded-b75f46737dc4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.025187s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios [0.060218s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.054370s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.023335s] ... ok {3} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.025567s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_observer [0.058206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-808cd469-1b4c-4eb8-9b70-3180576a68f3 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.045581s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk [0.067050s] ... ok {3} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.025945s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.044869s] ... ok {3} ironic.tests.unit.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.033575s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_connectors_get_admin [0.063167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-87dde54a-fc83-4a11-8139-0c406d460c5f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk [0.063060s] ... ok {3} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.039014s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.050531s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_member [0.060054s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a25a869-9c2d-440c-a0e8-37e7f825e962 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios [0.066293s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_observer [0.060871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c07c177a-c8fb-4faa-a655-e359d70930d5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.091498s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg [0.061618s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_post_admin [0.068249s] ... 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-feec9229-f673-4d71-b93e-ffdb9c340829 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback [0.056757s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.106724s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_member [0.071046s] ... 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-f469fa0d-bb81-47ee-beeb-892d645edefd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk [0.070849s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.094428s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_observer [0.072727s] ... 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-d51c6d26-1535-43a4-95d8-e06dcc23395b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.068539s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_volume_connector_id_get_admin [0.067982s] ... 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-2b5fe689-70ef-4645-a138-664fd3054db2 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.064389s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.087125s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.063421s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_member [0.066408s] ... 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-9208a985-bccb-4573-9f87-d337b6f426b0 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.092141s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_observer [0.065232s] ... 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-1cded830-e578-4733-b1ad-8384fb2a4e6b X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.065843s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.094847s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_patch_admin [0.067295s] ... 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-60ba34b0-c68d-4fa9-be00-86e511fcd698 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.068095s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_member [0.073378s] ... 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-f02036f9-db8e-462c-9674-204ed65f497d X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.075846s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_observer [0.065734s] ... 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-b70a5c9e-d8ad-4c2e-b2da-5651754171f6 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.071145s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin [0.063176s] ... 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-5c2d803c-8d5e-4318-aee3-331d47ef418d X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_member [0.064570s] ... 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-6cc14209-ff39-4410-a7a7-14284b559e7f X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.278356s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer [0.065676s] ... 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-1c95f6a6-7b99-4666-ac4b-0985dd073812 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.106291s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_targets_get_admin [0.059148s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-000d7223-899c-4c6a-961e-6a251dc68b6c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.252643s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_member [0.059512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d803e5c1-5edd-4289-a1c6-5debf2ce8323 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.068126s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.092273s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_observer [0.058731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6a6dbf55-f08e-40c3-ae66-5e6b83a8114a X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.069654s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.079094s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin [0.066704s] ... 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-411e8b02-e88b-49ff-afa2-9f534d74c397 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.064883s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.091533s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member [0.065596s] ... 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-a9c087b5-2227-4966-b6a8-c6dd747783b9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.077367s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_observer [0.066106s] ... 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-45265377-bf37-4a57-a72b-de342f06fa2f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.090642s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.077157s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_volume_target_id_get_admin [0.062281s] ... 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-0380795e-3670-454d-be1a-29fd4a89cdc0 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.045932s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.044372s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.078266s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member [0.063621s] ... 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-c48c6a9e-9bbf-4d97-a1d4-2b2e423d440a X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.045514s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.069830s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.048406s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.039793s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.048914s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.039313s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.050922s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.038451s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.038970s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer [0.226411s] ... 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-ef41d404-5063-478c-8f8f-b8b65ab7b7de X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.051354s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.039844s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.049946s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_patch_admin [0.067238s] ... 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-3b00e258-de18-4fd6-b1a3-517f1c2c8fd4 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.045004s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.045407s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.049572s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_member [0.066628s] ... 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-a152d00a-92d0-4099-b418-bf6cc3dd6335 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.045068s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot [0.039316s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.048827s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer [0.069277s] ... 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-53f5f7b1-7076-4d2c-824d-c14e18c037b5 X-Openstack-Ironic-Api-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.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.040773s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.048094s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso [0.043766s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin [0.064471s] ... 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-7f8cb8cf-535e-47cb-ac26-164d08f9a328 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.048210s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.044145s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_member [0.064370s] ... 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-8e596941-ff4c-4ad8-9fa3-58095cecb8f4 X-Openstack-Ironic-Api-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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.047602s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.044665s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.048601s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.047927s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer [0.061565s] ... 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-4eb106d0-467d-4b53-957a-41eef686b3b3 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.046851s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.054335s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_nodes_volume_get_admin [0.059923s] ... 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-0fdd750f-587b-469b-9d02-1cda7a73712d X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.035761s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.053648s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_member [0.057671s] ... 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-cebb9dbf-1ac4-44a4-b143-6a796c64d24b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance [0.049946s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.048370s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_observer [0.060433s] ... 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-03934d68-6e1b-41d2-88e6-c6e24bb1a743 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active [0.055146s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.057697s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_connectors_get_admin [0.062635s] ... 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-fad1ec32-3a5c-434a-bcd2-5683cd926ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart [0.068452s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.051892s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member [0.062856s] ... 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-72fe1d4a-5505-47f7-9f30-52d369738c09 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.049546s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios [0.070931s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.049747s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer [0.061537s] ... 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-9cdde391-2b40-433c-bc14-0a28b88955d2 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_lenovo [0.048443s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.050886s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin [0.061735s] ... 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-2bc9ce77-2ac0-49c4-8f3e-524b4251a331 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.061423s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.044307s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_member [0.063607s] ... 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-61d8f615-3ef9-486f-89a7-df5e9dc1665e X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.060095s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.048149s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.047221s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer [0.064419s] ... 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-5f26d54a-9330-40dd-95d5-f81ccae69973 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.067833s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.052671s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_drivers_get_admin [0.057207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-873ce22c-d112-4a5d-8ae2-1d298cd183c0 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios [0.065880s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.046101s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_member [0.056649s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-001cd383-324d-4df0-88f1-e42ac84e026d X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.065801s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.050615s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer [0.057410s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5befbba5-f175-44de-a402-9c2738cc0a6d X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.050523s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.063750s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_driver_name_get_admin [0.058219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2bc76f20-9ece-4b2a-b891-1e85a77ff1c0 X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.057838s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.062167s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member [0.057732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-20c83e4b-5024-4d4f-b757-ed63193d7f9f X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.049516s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.067273s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_observer [0.057616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fa0859d4-ca9d-45f2-8351-c5c4b0073b70 X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.050860s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios [0.065552s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_properties_get_admin [0.057251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b9e750a7-cfdb-44f6-a659-8fb62206eba1 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.057921s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network [0.052491s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member [0.059583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2ec626be-53a6-4d24-974d-e013f63112cb X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.068827s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer [0.057448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-048db05d-fc82-487c-ac93-a41bfbfad1bb X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.061648s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.079068s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_raid_logical_disk_properties_get_admin [0.057600s] ... 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-26030e12-9aed-465f-813a-a13812633a4a X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network [0.053771s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_member [0.062171s] ... 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-e9e6e48b-1f5c-4c9c-874d-603623a97d1c X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node [0.075609s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_observer [0.063505s] ... 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-34fe37e2-9d5e-4160-88e4-fd666b70ff85 X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.043850s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.041213s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_vendor_passthru_methods_get_admin [0.059286s] ... 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-f88cc512-605f-4816-94f4-6e39dcd99ca2 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.250012s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data [0.046699s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_member [0.060283s] ... 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-51ab2e43-7b94-4a01-85b5-af9f391b60b0 X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.035541s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.077776s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_observer [0.059912s] ... 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-f5cad96f-e8b2-45ba-81c9-6ad396fe5094 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.078333s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_get_admin [0.060879s] ... 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-b6ad1bf7-aa08-469e-a8f7-10b5da825d99 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.068442s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member [0.060292s] ... 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-b9161795-dfe8-4c70-8098-92b79a45d717 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.039434s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer [0.061271s] ... 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-ca09da10-7de0-4471-9ff4-1e47a4a2bb2a X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.234143s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.040336s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.039722s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.057402s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin [0.060437s] ... 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-ec036190-718e-4672-a1de-0ad9b658adbe X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.040295s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.043823s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member [0.059008s] ... 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-b1c91e6d-670f-4f68-b252-2c0e5a6c5b87 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.039276s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.044790s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection [0.044077s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_observer [0.059192s] ... 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-11baad7e-e7e0-48d4-a859-888d7cc4a363 X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.043849s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.049330s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_put_admin [0.058822s] ... 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-3d09c993-0eda-4e66-8627-47d554763278 X-Openstack-Ironic-Api-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.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.049335s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set [0.050448s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection [0.046238s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_member [0.058627s] ... 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-75ff94b6-c289-4896-9a5b-fa947e2bcf14 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id [0.050190s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc [0.041351s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_observer [0.064253s] ... 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-36fbbe0d-2fe6-4f84-bbe6-123ce3d20da1 X-Openstack-Ironic-Api-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.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot [0.039571s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.043939s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.039976s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local [0.056212s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.043145s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.045562s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.043337s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.046076s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_nodes_bios_get_admin [0.060815s] ... 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-980a638b-2e30-4405-97c9-e6995d526ec0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.035866s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.061684s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.038655s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_member [0.060897s] ... 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-1d7e1204-af1a-48cd-9ec6-02a5ca36ea7c X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry [0.058797s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.042578s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_observer [0.061742s] ... 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-4cff0a3b-93aa-4208-b2a0-00f46f5b3345 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.045041s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.061747s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.040452s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_bios_setting_get_admin [0.064894s] ... 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-4c358502-c901-40f5-aee5-98d40eb38976 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.020621s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.059584s] ... ok {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.042266s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.055781s] ... ok {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor [0.045857s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.054956s] ... ok {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac [0.049653s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.055819s] ... ok {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector [0.045344s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_member [0.225880s] ... 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-889bcfea-6d24-439f-bb71-9d2b8bc3b5b1 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.060022s] ... ok {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid [0.060374s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_observer [0.064834s] ... 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-738a10cf-532c-487f-ba2c-674558564ada X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.060399s] ... ok {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.048915s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_conductors_get_admin [0.056296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-53d6b9a4-a4f4-49ff-a407-d3156a4a5970 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.043859s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.068349s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_member [0.058076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2705133c-f631-457e-85a5-adc393be53fb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.059707s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.062505s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_observer [0.055617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-520e2f0f-78d5-4fea-b683-e3d1effff8d6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.047937s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.061211s] ... ok {0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.044895s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_hostname_get_admin [0.054395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dde40580-46b1-48a9-bb81-932e0286eb04 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.039414s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.060044s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_member [0.055133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-781bb57e-f7a2-4ab7-bbcb-885c8b8d6312 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.027465s] ... ok {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.023250s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.042207s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_observer [0.054775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40412e52-d8a4-4f12-91fe-6057857277eb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.041321s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.057801s] ... ok {0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.041691s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_allocations_post_admin [0.062157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8cdb8ae1-f79f-453f-89d0-4b743d5f58f7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.056921s] ... ok {0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.042962s] ... ok {2} 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. {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.022810s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.042458s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.020348s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.020616s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_248_allocations_post_observer [0.061846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f9e30aa1-7acb-4b6f-90ef-de7420fe9ea9 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_allocation.TestAllocationObject.test_get_by_name [0.022375s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.063579s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.022646s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.021885s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_get_admin [0.055894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-69c11e4d-5e43-4549-ba7f-e2511ec387f7 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.021918s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.061543s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.022083s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_member [0.055566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-055e57d1-6f99-4d32-8c77-ee36a5cf5a42 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_allocation.TestAllocationObject.test_save [0.022056s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.062144s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.029321s] ... ok {0} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.017814s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_observer [0.056937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b029d809-f08f-4884-9750-eb34c12b6e9b X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.015788s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.052428s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_allocation_id_get_admin [0.057531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/3f2681ec-773c-4959-898b-7e8af437eb35 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-66a10a9f-1295-47ec-8152-b0608706b8af X-Openstack-Ironic-Api-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 3f2681ec-773c-4959-898b-7e8af437eb35 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.042235s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.036874s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_member [0.057483s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d434e268-cf60-43bf-9675-cef4f7a65ba7 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ae1e8aa0-4d3f-4539-bcbd-7b6938cecd42 X-Openstack-Ironic-Api-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 d434e268-cf60-43bf-9675-cef4f7a65ba7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.054317s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_observer [0.060909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/06fe438a-37c2-409b-988a-a9e78d890c85 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-170a305d-2297-462d-bbc8-f99084cb1d47 X-Openstack-Ironic-Api-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 06fe438a-37c2-409b-988a-a9e78d890c85 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.054859s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_patch_admin [0.069490s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/06b091c3-e777-40ec-b915-1f85cd869378 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a5b9f77d-b6ac-49d1-9c45-fd69c4f3c89e X-Openstack-Ironic-Api-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 06b091c3-e777-40ec-b915-1f85cd869378 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.062405s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_member [0.069712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9f9b26f1-80af-4574-a0c5-ef1d1f48f9ab WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-de8ee678-373e-4356-8001-23f4c271e6ca X-Openstack-Ironic-Api-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 9f9b26f1-80af-4574-a0c5-ef1d1f48f9ab could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.347445s] ... ok {0} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.017996s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_observer [0.073832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/bcdb76cc-6488-4050-b5db-90241fc9c334 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e244907a-386e-4b2f-ad1b-8c9c428002c8 X-Openstack-Ironic-Api-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 bcdb76cc-6488-4050-b5db-90241fc9c334 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.022008s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.022336s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.022450s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_delete_admin [0.059390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/446a646b-3ad2-4771-b1e3-d359c81faf98 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fc58f12d-d819-40ef-95ca-ac6e54a483f1 X-Openstack-Ironic-Api-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 446a646b-3ad2-4771-b1e3-d359c81faf98 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.022455s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.022454s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_member [0.058936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/8fcd4006-391b-4367-af74-3c45c7150740 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4c43b2c9-5867-4871-aa20-6bcf4d1a61c2 X-Openstack-Ironic-Api-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 8fcd4006-391b-4367-af74-3c45c7150740 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.022564s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.253102s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.023561s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.022433s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_observer [0.060316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/6fd242f1-c59d-44b8-ad10-a28eda0e533c GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fa8a3b1b-f605-428c-b968-9c2925cb38cd X-Openstack-Ironic-Api-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 6fd242f1-c59d-44b8-ad10-a28eda0e533c could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.022663s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.063556s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.022917s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.032312s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.022932s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_261_nodes_allocation_get_admin [0.062132s] ... 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-7d018d1f-35a5-48d0-a1e6-73f9bd9d184d X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.021969s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.052702s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.029223s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_member [0.063682s] ... 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-4a96f3be-9008-4d82-b229-ab74a115aca2 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.023687s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.035524s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.023540s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.026096s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.025256s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_observer [0.064208s] ... 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-571c7ede-6481-40f0-a8b4-61beed1c9b12 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.027530s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.027329s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.036534s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.026065s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_delete_admin [0.065523s] ... 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-4bba14ef-258d-4908-bb75-d6f396cfbb77 X-Openstack-Ironic-Api-Maximum-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing [0.023955s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.037026s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set [0.025461s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.035209s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.025602s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_member [0.069193s] ... 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-8b60bd5a-5ac6-44df-92d6-40ae412e8fb0 X-Openstack-Ironic-Api-Maximum-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.027496s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.040535s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.024629s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.035255s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.019280s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_observer [0.067122s] ... 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-174b59e1-98f4-4947-aa60-0fff9a3b6449 X-Openstack-Ironic-Api-Maximum-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.019040s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.039332s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.020454s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.019195s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_deploy_templates_post_admin [0.068214s] ... 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-b19427dd-5094-4763-bef2-837c53a07681 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.018653s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.044902s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.018856s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.018097s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.041975s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.018677s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_member [0.069641s] ... 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-c3572a3e-eff9-45c6-bc5f-f967be2fdad5 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.019510s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.041022s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.020165s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.018970s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.039869s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.019099s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_observer [0.071214s] ... 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-73b289d2-c41e-4efb-9f3a-994d3be4c7cb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.018369s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.041465s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.019062s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.018695s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_get_admin [0.061883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fdd8f224-2753-47d7-8207-a9c1594a17e6 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.018539s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.043136s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.019189s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.034453s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.019756s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_member [0.062098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-376fc43d-4e02-448f-9c36-6b92b0381fc4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.019568s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.033281s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_missing [0.019629s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.018862s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.032301s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_observer [0.060528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-220d9515-3db0-4794-a952-eababb8107a0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.019451s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.018954s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing [0.019537s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.068958s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_deploy_template_id_get_admin [0.060172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/472454d7-3dd4-4309-b230-65e6a9fec933 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3dd9ddff-0a5a-4e67-8b91-252f936175fd X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.019840s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.018929s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.018256s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.018250s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_member [0.058240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/7fde9701-2c9f-41d9-b315-7c2180641705 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5aa59d98-98fe-4546-bf59-477845d3fed0 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.075626s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.018838s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.026166s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off [0.044711s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_observer [0.059416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/ae25f1d6-4dae-41dc-b465-147f7f1fdb4b WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-efb83643-4ea8-4ff1-a56b-44fc9735cfeb X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.020781s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.018810s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.018567s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on [0.046545s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_patch_admin [0.060755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/a98df70c-889e-4fe8-bccd-3e9b4fd8b95b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ae7686d0-ab0f-4c48-a67b-c9e503ec4227 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.019224s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.018333s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [0.046108s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.018979s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.018615s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_member [0.061902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/53725d5b-4cbc-476d-91f4-5099a4c7e74d WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1dd0afd8-9a35-44ff-b930-ac289cb64bae X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.018726s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [0.046111s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.019368s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.018545s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.018383s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.071110s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.021660s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.020022s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.042474s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.019222s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.018772s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate [0.034314s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.022133s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing [0.019170s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.018651s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean [0.065662s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_observer [0.231302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/90b8f8e7-009d-4abe-a881-2ab03ed507d9 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7b2cf005-ff20-4ef4-b3e7-52e820f2a807 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing [0.020464s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.019569s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.025450s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_delete_admin [0.056893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/ea26a51c-2958-408b-bacf-0e8fe313da35 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4736bd95-dc3a-4c8c-8fd2-4d8dac76b399 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy [0.070856s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.027825s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.025319s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_member [0.057954s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/16d891a2-4ea4-4eaf-a179-5f3fedf9022c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2f4c432a-9827-4e2c-b30b-c24cce87c1e4 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.023943s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.057047s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.026641s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_observer [0.057882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/5dba6798-9686-4f73-ade4-ea6062c81764 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a372dec5-e1eb-4b31-9e7a-179bca7d5008 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.025754s] ... ok {0} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.025370s] ... ok {0} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.029181s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_chassis_post_admin [0.060288s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-67ced5d5-98be-47ca-b053-51a66e369c94 X-Openstack-Ironic-Api-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.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.022626s] ... ok {0} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.031647s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_member [0.060622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-dded3499-acab-4dba-bcee-7cb6ea581086 X-Openstack-Ironic-Api-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.objects.test_port.TestPortObject.test_create [0.027077s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.024848s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_observer [0.062752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-489f0e7b-edf6-4d98-9cf5-4027841d9ad3 X-Openstack-Ironic-Api-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.objects.test_port.TestPortObject.test_get_by_address [0.027551s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.252288s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.026460s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.034254s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_get_admin [0.059749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f35016fb-f232-47b0-ac7d-79dc21e8624b X-Openstack-Ironic-Api-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.objects.test_port.TestPortObject.test_get_by_name [0.025304s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.029078s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.024454s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.026241s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.025660s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_member [0.059821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-173b9f18-02eb-478a-9ea3-e1bd3fc4630a X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.029378s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner [0.026537s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.022968s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.026702s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_observer [0.060534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-39c1fd4c-86ec-42f1-bd03-8b167b556358 X-Openstack-Ironic-Api-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.objects.test_port.TestPortObject.test_refresh [0.021816s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.020441s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.044749s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_detail_get_admin [0.057679s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-166242b4-a796-4c8f-8741-eaf3ac3c4be0 X-Openstack-Ironic-Api-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.objects.test_port.TestPortObject.test_save_after_refresh [0.043902s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.045721s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.023795s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.020933s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_member [0.059482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2cbabb8b-f51d-4e93-aecd-020e5e451b19 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [0.043197s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.022193s] ... ok {0} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.020751s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.043092s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_observer [0.057555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-007101f0-4e85-4af0-b222-67ac564f47bd X-Openstack-Ironic-Api-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.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.020399s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.028736s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.019476s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.018205s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.027934s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_chassis_id_get_admin [0.059307s] ... 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-09fab08c-bcdd-4a6f-8383-5b5e10f35382 X-Openstack-Ironic-Api-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.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.018750s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.020134s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.045016s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.020389s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_member [0.056910s] ... 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-f9e9c812-a6c0-4c62-ab2c-7460a971c0c1 X-Openstack-Ironic-Api-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.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.021019s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.048502s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.024228s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.023688s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_observer [0.060008s] ... 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-e575bec9-885f-4997-b80c-2ca216c9b65b X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate [0.052859s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset [0.042455s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_patch_admin [0.063563s] ... 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-83df581d-481f-445a-86b9-9d11615a9c8f X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.052319s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_member [0.063946s] ... 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-7e20b1f7-919e-462b-aaa6-12378a5b18ee X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset [0.045832s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_observer [0.061124s] ... 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-50c5c617-a7c7-4401-8dce-505d6944628f X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_delete_admin [0.060326s] ... 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-301491b9-e0cf-447a-be9a-a4142dbbf6c4 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_member [0.061494s] ... 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-2cafec0c-1bb0-481f-9142-35c88626ad59 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_observer [0.058406s] ... 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-c103d786-90e4-4738-bedb-aa385c0c1e10 X-Openstack-Ironic-Api-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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.233304s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.431488s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 [0.050127s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_node_history_get_admin [0.064973s] ... 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-816d003e-62d2-4e34-8523-4fa0945fd220 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_portgroup.TestPortgroupObject.test_list [0.026544s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.022553s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.044423s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.020893s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_member [0.064634s] ... 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-1627f5e6-c426-4942-bb42-7d0bf49c4880 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_portgroup.TestPortgroupObject.test_refresh [0.023023s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b [0.051395s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.026983s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_observer [0.066122s] ... 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-b76ec993-442c-4a90-8ad8-d0d11a26ee3f X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.040260s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.045765s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.025704s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.054679s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_entry_admin [0.063364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e55090fe-7815-4bd7-817b-2aacda91a919 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f1e4b474-5c20-44bc-be0b-4d9c9011a579 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.026877s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.026097s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.048885s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_member [0.064308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5c5d4ec8-da94-4073-abb9-e64b64214c45 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e74e3bdb-8674-451d-9751-a46d3c95ef97 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.026440s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.044755s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.025961s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.021325s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_observer [0.063412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/60ef9c0e-1503-4de4-ae43-fb20513738d9 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-265b25cd-63e0-4dee-a56f-cbdb80ac8233 X-Openstack-Ironic-Api-Maximum-Version: 1.90 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.019631s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks [0.043128s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.022020s] ... ok {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.026757s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.046389s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.024846s] ... ok {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.026152s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.026080s] ... ok {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.026026s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config [0.041296s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.022415s] ... ok {2} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.032336s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.027938s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.040576s] ... ok {2} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.032196s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.022513s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.037113s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.023142s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.033221s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.029996s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.026865s] ... 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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.053533s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.027012s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info [0.035066s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.023390s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.044844s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.033364s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.024558s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.023123s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.031143s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.049840s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.024434s] ... ok {2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.032220s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.023358s] ... ok {2} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.025939s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.047819s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.020780s] ... ok {2} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.025566s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.020053s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.020894s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.047698s] ... ok {2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.024119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c587e1e-1755-4c33-9f9d-fa2fa5f422c9 {"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"}]} {2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.025286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14dcfcdf-2272-4884-baca-99e50d3aa9a2 {"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.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.028336s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.050384s] ... ok {2} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.029197s] ... ok {2} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.027156s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.038476s] ... ok {2} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.026980s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.041961s] ... ok {2} ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.027220s] ... ok {2} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.021676s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.042162s] ... ok {2} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.031585s] ... ok {2} ironic.tests.unit.common.test_args.ValidateTypesTest.test_types [0.017717s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.041332s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.018628s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ [0.018151s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.018667s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.049284s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.018731s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.019694s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.020198s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.018608s] ... ok {2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.018863s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.028735s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.021733s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.021248s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.025781s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.239739s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.046086s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.048237s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.182915s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.049692s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.025900s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.025854s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.050612s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.050949s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.049928s] ... ok {2} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.026228s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.061507s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.039034s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.033785s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.049514s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.037765s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.053884s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.038540s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.043568s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.038164s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.042622s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.041229s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.028818s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.037409s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_service_steps [0.042872s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.040365s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.036772s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.024510s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.071693s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.026218s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.022335s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.058693s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.022746s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.022156s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.046713s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.023614s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.026015s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.025367s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.063636s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.026000s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.043611s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.027912s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.025520s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track [0.044831s] ... ok {2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.040723s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.042386s] ... ok {2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.048858s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.059267s] ... ok {2} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.038263s] ... ok {2} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.023895s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot [0.052051s] ... ok {2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_capture_region [0.020755s] ... ok {2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_get_inspector [0.018602s] ... ok {2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_file_like [0.026051s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot [0.058912s] ... ok {2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_file_like_eats_error [0.027165s] ... ok {2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_iter_like [0.026393s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [0.052333s] ... ok {2} ironic.tests.unit.common.test_format_inspector.TestFormatInspectorInfra.test_info_wrapper_iter_like_eats_error [0.025495s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.019056s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.055654s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed [0.017077s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound [0.017060s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.016821s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.059717s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.023746s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.018663s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.050308s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.071401s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.074610s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_service [0.044455s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.060693s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.070376s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.067967s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.064271s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.040395s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.040122s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service [0.041284s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.065636s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.043489s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.047075s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum [0.046233s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.045727s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [1.022661s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.019952s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.019454s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type [0.218143s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.019147s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.018672s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.038411s] ... ok {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.021274s] ... ok {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.020002s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.036763s] ... ok {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.020916s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.037495s] ... ok {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.029113s] ... ok {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.029346s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.048021s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.020434s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.020960s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.021864s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.047736s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.022121s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.020717s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.047954s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.021198s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false [0.020932s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.046270s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.017940s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.021486s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash [0.046966s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.020750s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.020511s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.037952s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.020331s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.017686s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.017472s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.052986s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.021527s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.019391s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled [0.018034s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success [0.051469s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.018346s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.018149s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.019154s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.018325s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.079472s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.018316s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.020829s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.019291s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url [0.068222s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image [0.059696s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive [0.054773s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.178540s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.017914s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.064300s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.018094s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.017340s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.017084s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies [0.059721s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.017574s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.017120s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.016977s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.017537s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning [0.059582s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.017180s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.017051s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.016116s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.061960s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.015799s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.016817s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.016819s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.016144s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.014768s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.068345s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.014932s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.014926s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.060765s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.037805s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.016041s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail [0.047782s] ... ok {2} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.045743s] ... ok {2} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.042968s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.066084s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.042955s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.062787s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.042322s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command [0.048989s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.045122s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.037168s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot [0.062941s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.041523s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running [0.044010s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.041085s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown [0.062608s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.042751s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.041021s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook [0.065714s] ... ok {2} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.062020s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.019121s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.061487s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.017827s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.018661s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.018102s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning [0.058788s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.017913s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.018161s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.017772s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing [0.055425s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.018028s] ... ok {2} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.017704s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.018397s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_after_reboot [0.061445s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.017733s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.019848s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.018742s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.018093s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_reboot [0.070115s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.018923s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.021822s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_running [0.048040s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.022243s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.022709s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.022218s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.050697s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.022619s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.023462s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.052139s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.023000s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.049731s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.045526s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [0.052589s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.044393s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.052777s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.051107s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.051648s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.054092s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.049507s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.053592s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.044643s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.049246s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.048126s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.046309s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.048320s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.048981s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.049276s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.045073s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.044932s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.192859s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.035971s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.476181s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.037686s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.036410s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.036222s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.040493s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.038996s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.202655s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.037709s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.018657s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.019509s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.017702s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.079105s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.017555s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.016803s] ... ok {2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.016897s] ... ok {2} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.017203s] ... ok {2} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.017592s] ... ok {2} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.017773s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.096875s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.017363s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.018508s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.017737s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.052375s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.018321s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.019410s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.019348s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.017814s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.083718s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient [0.018080s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.017627s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.017313s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.017717s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.016443s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.084509s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.018295s] ... ok {2} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.022528s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.077656s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.140099s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.067084s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.050463s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.047985s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.071785s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.052786s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean [0.062749s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.047762s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.045962s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.112830s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.044671s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.024190s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.061911s] ... ok {2} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.068197s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation [0.060431s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.047255s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps [0.046490s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.032135s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy [0.056922s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.054341s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step [0.053163s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.035150s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.032164s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running [0.054979s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.049488s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.056678s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.042786s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step [0.048484s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.044273s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step [0.046553s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.049465s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found [0.058949s] ... ok {2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.045673s] ... ok {2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.044072s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps [0.050088s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.046004s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface [0.048569s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps [0.047161s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities [0.042741s] ... ok {2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_early [0.199915s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none [0.042061s] ... ok {2} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_with_step [0.043268s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.019988s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.017594s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.018225s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.018068s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.017139s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.086682s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.017923s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.021082s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.018437s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.019404s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.019109s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.101271s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.018728s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.017763s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.017575s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll [0.019883s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify [0.018618s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.095027s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.018600s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable [0.021397s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.018720s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal [0.018343s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.017274s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.016435s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.105114s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.016797s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.016916s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.016466s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.020489s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.017937s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.016801s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.101352s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.017077s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.016788s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.017368s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.016636s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.017547s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.094108s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries [0.017075s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.017174s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.109045s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.095936s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify [0.197484s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.018362s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.017156s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.017723s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.016845s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.097683s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.016953s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.016763s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.022727s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.023464s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.022285s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.100638s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.052597s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state [0.043232s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.096618s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance [0.041750s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout [0.052418s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.091423s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate [0.023403s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.023718s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.023235s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.088131s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.044691s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.027284s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.027219s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy [0.081705s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.026196s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.025848s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.025562s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee [0.085628s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.026599s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.049467s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.082059s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [0.048595s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.075914s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.047788s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.046247s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.049022s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok [0.046262s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.053634s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok_asynchronous [0.042047s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.043474s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.044751s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.042003s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.048816s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.042723s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.043073s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.043549s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.044078s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.053036s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.049020s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_service_error [0.043251s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.021348s] ... ok {2} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.050401s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.019585s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.019560s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.019477s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.019148s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.022252s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.093712s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.022397s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.022474s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.022001s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.072436s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.022672s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.020048s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.019870s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.019854s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.022460s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.107234s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.023599s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.023288s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.023596s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.024681s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.024001s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.026172s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.024986s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.030315s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.025614s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path [0.030326s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.026974s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.025390s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.021993s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.315422s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.021866s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.017222s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.017616s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.017075s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.079021s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.024804s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.026038s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.025157s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.075196s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.022816s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.024708s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.088291s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.106980s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.214154s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.039338s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.111664s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.041749s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.037927s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.036227s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.114044s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.041849s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.036196s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.108548s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.041893s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs [0.037198s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.036638s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.039223s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.133917s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid [0.036440s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.037767s] ... ok {2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.092149s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.035586s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.041345s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.038863s] ... ok {2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.090641s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.037213s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.038219s] ... ok {2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.090151s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.040175s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.037723s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.039968s] ... ok {2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.096947s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.039677s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_no_input [0.033978s] ... ok {2} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.092634s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_http_boot_enabled [0.033386s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_ok [0.048525s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk [0.067386s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_with_discovery [0.040914s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.066396s] ... ok {2} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_wrong_state [0.066307s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node [0.031216s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.023138s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.065747s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.024901s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.040219s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.047916s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.042395s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.032727s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.046040s] ... ok {2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.032596s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.045459s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.026684s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.044410s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.048893s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.048255s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.217558s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.048710s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif [0.044727s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.050482s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present [0.044701s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.045269s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.043216s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.045286s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.039197s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked [0.032364s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.046142s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.042196s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.045002s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.042085s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.045167s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.041939s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.044899s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.048386s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.044457s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.043517s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.044931s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.030999s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.038152s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.082589s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.225400s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.096430s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.021215s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.019429s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.018870s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.018681s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.018706s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.096903s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.018494s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.019068s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.019181s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.020992s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked [0.078284s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.019142s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.019443s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.019817s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.019660s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.080869s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.019139s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.019151s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.018906s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.019582s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.019148s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.096001s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.019838s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.020147s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.019739s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.019114s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.020823s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.100412s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.020428s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.019782s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.018791s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.019018s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.019576s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.094816s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.019149s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.019261s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.019464s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.019462s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.084454s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.020005s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.019183s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.019922s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.019216s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.019474s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.087851s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.018869s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.019234s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.018878s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.019036s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.084677s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.019858s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.019768s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.020052s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.019349s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.075646s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.016693s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.016677s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.016416s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.017097s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.016344s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.081348s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.016374s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.016491s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.016214s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.015844s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.016706s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.082582s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.017471s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.017045s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.016293s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.016558s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.017288s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.092341s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.016729s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.016812s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.016342s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.016091s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.021640s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.016851s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_automated [0.096964s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.023452s] ... ok {1} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.017544s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.018775s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.019185s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.018343s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_manual [0.103748s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.017699s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.017335s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.016995s] ... ok {1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.017564s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.016226s] ... ok {1} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.036218s] ... ok {1} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid [0.049231s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.036360s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.035747s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.035293s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.290501s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.039436s] ... ok {1} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.038233s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.022143s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.082527s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.021001s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.020550s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.021001s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.090538s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.087388s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.026125s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.024654s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.025706s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.201996s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.021023s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.026015s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.020228s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.024274s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.020157s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.026363s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.026643s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.024607s] ... ok {1} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.030645s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.025811s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.021876s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.024731s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.020192s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.021745s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.045879s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.021593s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.021336s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.020192s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.068562s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.021015s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.021378s] ... ok {1} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.026063s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.060085s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.021549s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.020394s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.020306s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management [0.061093s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.019916s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.020045s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.019816s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.059237s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.021155s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.020357s] ... ok {1} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.020638s] ... ok {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.064315s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.016836s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.016782s] ... ok {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.046119s] ... ok {1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_create [0.020359s] ... ok {1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.020829s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.018145s] ... ok {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.049876s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.016329s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.017506s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.016427s] ... ok {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.049542s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.016804s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.016651s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.016816s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.016525s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.060104s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.016759s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.017031s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.016714s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.017009s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled [0.070717s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.017461s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.016683s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.017209s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.060931s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.017366s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.017247s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.017233s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.017394s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_one_worker [0.061393s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.017779s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.018823s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.020343s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.063285s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.017145s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.016907s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.017284s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.017082s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.060345s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.016438s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.017257s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.017121s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.059946s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.016723s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.017030s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.016180s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.019830s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__sensors_conductor [0.061923s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.021839s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.023689s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.020800s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.067786s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.020946s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.021463s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.021306s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.021082s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.017704s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.015740s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.015831s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.017068s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.016234s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.015872s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.016970s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.015964s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.015780s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.240763s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.015982s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.021125s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.019522s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.066292s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.018334s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.018158s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.019495s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.019331s] ... ok {2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.064586s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.020110s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.018661s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.040147s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.019640s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.020108s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.040175s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing [0.020869s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.021620s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.037354s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.020273s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.033429s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove [0.019434s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.018892s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.020906s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.044087s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.019762s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.019328s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.049234s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.018538s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.018969s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.040917s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.020095s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.019890s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.018771s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.049319s] ... ok {1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.018216s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.017881s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.043775s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.018949s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.019122s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.045663s] ... ok {1} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.038319s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.023056s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.047284s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.019663s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.029943s] ... ok {1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.019637s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [0.876268s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.189321s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.100350s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.065578s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.031077s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.042631s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface [0.045281s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.033588s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.029419s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.057609s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.066298s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.026538s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.027390s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set [0.064338s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset [0.079720s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.192547s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.113268s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.135504s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.074950s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.039201s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.041994s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.031205s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.044652s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.046807s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.039194s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target [0.040820s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.050438s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.043285s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.039007s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.037483s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.197089s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.037883s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.044653s] ... ok {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_http [0.053267s] ... ok {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_local [0.063652s] ... ok {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media [0.047836s] ... ok {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.053116s] ... ok {2} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_prepare [0.052411s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.044580s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.028721s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit [0.027980s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run [0.027619s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple [2.056874s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop [0.063506s] ... ok {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.051754s] ... ok {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.047765s] ... ok {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.047936s] ... ok {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.048029s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps [0.038976s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.040493s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps [0.040482s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps [0.040205s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.040893s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.038903s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.038758s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.038151s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps [0.038322s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.038367s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps [0.038306s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing [0.037827s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps [0.038821s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.038383s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps [0.038833s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.040232s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.039430s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.034323s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.040329s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.038187s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.039846s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.038858s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.039015s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.038503s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.038459s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.038641s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.038344s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.038361s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.038364s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.039273s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.039399s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing [0.038203s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.046376s] ... ok {2} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing [0.045963s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.023699s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.023859s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none [0.023497s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.024503s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.025250s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.024725s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info [0.021929s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.021318s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.020258s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.044441s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.035630s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.236280s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.048172s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.048030s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.043666s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.067733s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.051453s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.050767s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.066279s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.071762s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.048561s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.048402s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_already [0.049392s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token [0.049935s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.051506s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.051030s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.076680s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.050001s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.049070s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.048773s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.048604s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.054010s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.077801s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.036165s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.036291s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default [0.038829s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.036221s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.035879s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.036654s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.037491s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.036424s] ... ok {2} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.037524s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.019451s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.017578s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.016998s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.017547s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.017231s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.017279s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.048705s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.051494s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.048862s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.051065s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.053436s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.055744s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.047674s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.052376s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.053100s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.044712s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.054199s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.057702s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.051464s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.056704s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.058672s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.050505s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.056421s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.219355s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.053505s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.053512s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.041542s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.043752s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.047998s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.048432s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.056545s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.053045s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.039471s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.043398s] ... ok {2} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.019628s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.024788s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.024549s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.024244s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.026681s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.025538s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.027318s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.036555s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.024983s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.024622s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.025381s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.024808s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.025757s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.026380s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.032078s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.033741s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.035206s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.041825s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.036058s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.024085s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.030221s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.024571s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.028560s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.027698s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.027505s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.035079s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.026918s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.036965s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.025331s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.024478s] ... ok {2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.032413s] ... ok {2} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate [0.037459s] ... ok {2} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate_some [0.047286s] ... ok {2} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_all [0.034025s] ... ok {2} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.037180s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.238764s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.169616s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.030120s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.167004s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.024932s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.155208s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.022851s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.327410s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.168341s] ... ok {2} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.025196s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.025917s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.029118s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.027242s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.036808s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.025026s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.028443s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.028538s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.027216s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.024040s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.023492s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.026488s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.028543s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.023016s] ... ok {2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.027205s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.024821s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.024566s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.026902s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.026594s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner [0.027635s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match [0.024781s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.027766s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match [0.025233s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.027443s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.030268s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.026302s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.031572s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner [0.033096s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.034998s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.031536s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.026097s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.027580s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.024871s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.026890s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.024985s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.024856s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.027327s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.028861s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.024796s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.028184s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.024810s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.025179s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.026407s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.035747s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.029561s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.026987s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.028793s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.024713s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.046000s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.045335s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.037739s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.044245s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.043326s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.050215s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.039604s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.037894s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.023814s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.048396s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.045575s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.038207s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.047694s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.049490s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.040148s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.240686s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.048963s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.046002s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.064022s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.059832s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [0.049630s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_different_inventory_time [0.049901s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time [0.044887s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_last_system_inventory_changed_same_inventory_time_timeout [0.049198s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs [0.051689s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors [0.062593s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_failed [0.050087s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_still_running [0.045486s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status [0.032046s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs [0.026323s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_driver [0.033077s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_commit_fail [0.044444s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_conf_set_fail [0.041190s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_clean [0.048094s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_apply_configuration_deploy [0.078910s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_fail [0.092655s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop [0.233565s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_clean [0.192946s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_commit_fail [0.156210s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_deploy [0.201372s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail [0.196893s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties [0.222528s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate [0.161076s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean [0.248924s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy [0.115219s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean [0.215646s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_deploy [0.175010s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_with_errors_job [0.120336s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job [0.091127s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_clean [0.094811s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed_in_deploy [0.103090s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_clean [0.095064s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed_in_deploy [0.064658s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update [0.039394s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac [0.060621s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman [0.032694s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac [0.036166s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs_drac_wsman [0.036989s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes [0.025276s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state [0.034274s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail [0.051094s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties [0.028951s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_fail [0.054437s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_power_change_success [0.060516s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_success [1.046464s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off [1.488387s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on [0.047571s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout [0.063004s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state [0.052702s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail [0.049525s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout [0.048342s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks [0.029499s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail [0.028061s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers [0.026679s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail [0.036031s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks [0.049092s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail [0.027018s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.039113s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.096074s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.082361s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.096015s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.130311s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.057797s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.064955s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.081738s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.041451s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.058374s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.048546s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.059964s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.024602s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.033279s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.035430s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.047921s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.031800s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.024675s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.033689s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.076695s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.045086s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.048523s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.043236s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.024356s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.035084s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration [0.025203s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.023388s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.042255s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.035116s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.046425s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.025063s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.023326s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot [0.078042s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_fail [0.050337s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_not_reached [0.068907s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout [0.046452s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry [0.042025s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info [0.032814s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme [0.048403s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.034667s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address [0.040287s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.029920s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.030554s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info [0.026756s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca [0.030877s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath [0.028807s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.287116s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary [0.034067s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties [0.052819s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order [0.043126s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller [0.035732s] ... ok {2} ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate [0.047440s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.057102s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.076816s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.081881s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.076527s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.072107s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.094610s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.063518s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.079491s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.054911s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.079225s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.050353s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.030368s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.052608s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_ilo6_redirect [0.034152s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.041716s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.091247s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.063246s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.048361s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.100791s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.043359s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.063153s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.047560s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.075277s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.058857s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.107245s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.128639s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.084532s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_accelerators.AcceleratorsTestCase.test_accelerators [0.068530s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_architecture.ArchitectureTestCase.test_architecture [0.049978s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.050758s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.041524s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.057842s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.053228s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.043718s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.039265s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.052572s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_null_strings [0.056146s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_old_format [0.059610s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.074541s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.066623s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.065289s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.052866s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.057788s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.041709s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.156406s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_error [0.127223s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track [0.067136s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.083520s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_ok [0.339057s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.036282s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.062869s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_ok [0.042908s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.031721s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.060490s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.083355s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.091114s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.072162s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.072440s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.051078s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.064471s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.063681s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.060793s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.074787s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.093438s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.077566s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.061304s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.038684s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.033922s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.041614s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.060788s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.047878s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info [0.030961s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.035467s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.057738s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.045593s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.036410s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.030630s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.024575s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.023530s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.025536s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.030222s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.073563s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.030669s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.025585s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.103902s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.128928s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.059004s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.130985s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.067777s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.031959s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.055268s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.058898s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.048975s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.044810s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.037298s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated [0.036687s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.048788s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.025567s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.035193s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.055143s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.062845s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.062378s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance [0.123676s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance [0.147471s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.053826s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.073764s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.060601s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.048973s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.042757s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.039839s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.057275s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.027360s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.031390s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.038093s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.041325s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.034727s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.321873s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.027377s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.047959s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.050104s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.051987s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.054927s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.046660s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.034898s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.038899s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.054512s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.041497s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.046823s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.034293s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.058116s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.060178s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.065250s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.078893s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.089548s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting [0.046577s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.039054s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [0.041478s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.050132s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.047328s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.079816s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.049478s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything [0.050351s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.043843s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.056798s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.040144s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.041959s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.041593s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.032209s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.034791s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.066488s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.043307s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.033083s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.045407s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.050274s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.048282s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.033604s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.030552s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.036520s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.045669s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.046979s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.033556s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.042729s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.040496s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.054070s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.406734s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.085779s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.039209s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.047824s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.081509s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.049937s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.129419s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.098627s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.088775s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.083916s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.084981s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.081439s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.133704s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track [0.080411s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.066849s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.075068s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.053455s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.072608s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.119498s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.065041s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.080391s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.061602s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.071887s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.071627s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [0.137563s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.085412s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.062206s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.042002s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.022362s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.049655s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.044525s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.033331s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.030554s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.240148s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.031483s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http [0.030509s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.023358s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.022326s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.023907s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift [0.027669s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.027867s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.026464s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.033056s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.030251s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.047618s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.068117s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.029808s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.022193s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.018714s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.019447s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.021136s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.026597s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.022117s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.057248s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.057622s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [0.051118s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.075714s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.072922s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.070187s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.067749s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.149682s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.048102s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.058517s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.039594s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [0.040461s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.060827s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.057074s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.037158s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.039514s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.039521s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.037310s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.038283s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.031270s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.033833s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.028345s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_attach_virtual_media [0.065166s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.046530s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.044418s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.064886s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.042332s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor [0.034319s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.058094s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.033002s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state [0.038022s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.067590s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.035377s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.035597s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.035523s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.032975s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.034049s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.036631s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.040694s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.048683s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.034471s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.048368s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.077465s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.136610s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.055856s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.041008s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.299964s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.046514s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.067551s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.040566s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.090244s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.097720s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.086516s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.096613s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.093592s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.060792s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [0.080704s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.083181s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.048049s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.070098s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.081685s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state [0.044061s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.121047s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.100497s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.074668s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.060871s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.088395s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.099794s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.079733s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware [0.076867s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.050750s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage [0.081195s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.091710s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.043987s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.049815s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.047233s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.053745s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.046601s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.042826s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.060656s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.073105s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.064824s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.052638s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.071844s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.116056s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.045309s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.320031s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.044611s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.047493s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.047138s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.049720s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.045493s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up [0.068656s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy [0.072118s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track [0.099854s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false [0.068359s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot [0.076353s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties [0.034307s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.112097s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track [0.064224s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate [0.086332s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required [0.025026s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.029906s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.033599s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.051788s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.037059s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.033531s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.036631s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.024667s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.023614s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.024738s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.024177s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.050749s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.044565s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.024868s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.848694s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.025098s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.038430s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.040833s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.047006s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.048380s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.049746s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.035896s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.030495s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.024207s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.025949s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.025935s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.040448s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.030517s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.357896s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.032615s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.035860s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.024228s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.045342s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.066653s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.057950s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.038555s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.036641s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.034748s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.034189s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.048607s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.067197s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.036006s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.084639s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.031813s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.046410s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.045072s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.030859s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.024589s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.023846s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.046678s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.044447s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.024921s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.097840s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.071165s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.086043s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.068663s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.074523s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.071092s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.078414s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.082000s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.076255s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.066236s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.051096s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.075896s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.056327s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.049436s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.057332s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.028449s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.051918s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.031763s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.025669s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.027023s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.052121s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.060684s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.051133s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.043509s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.026699s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw [0.028100s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.027551s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback [0.033143s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.037656s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_not_safe_image [0.023479s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_part_already_exists [0.034408s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_image [0.043842s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.050116s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.039996s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.439747s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.020154s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.028913s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.021744s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.020919s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.020622s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.023833s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.018898s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.025321s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.030394s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.034142s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.029474s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip [0.042547s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip_as_url [0.024541s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.022594s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.021412s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host [0.024008s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host_in_url [0.037693s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries [0.069357s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.049250s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.067626s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.053178s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port [0.063930s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.070499s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.053366s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.056508s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.026379s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.023140s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.022714s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.025993s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port [0.053953s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor [0.042313s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.059458s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.043273s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.056357s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.046191s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.039529s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.049764s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios [0.072338s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.060088s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.071301s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.055925s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.044202s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.044733s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.044509s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.046343s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios [0.055046s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.061921s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.052940s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios [0.046900s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios [0.057411s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.046976s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci [0.053555s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.045811s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci [0.070866s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.047034s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios [0.048396s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi [0.053570s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios [0.053868s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi [0.048301s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.055265s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.069819s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.049905s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.049146s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.042207s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.051712s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.053856s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.042102s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.093529s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.085961s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_from_clean_step [0.300602s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_is_in_step_list [0.107744s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.091770s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.045243s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.081510s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.056991s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.062860s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.065334s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.077094s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.063289s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.054038s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.064692s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.045208s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.083065s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.049642s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.057225s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.055799s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.057475s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.084875s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.089743s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.048531s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.044750s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.067351s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.046207s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.042970s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.081012s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.103904s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.056851s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.054310s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.049317s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.048721s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.051409s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.062333s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.058985s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.078331s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.051423s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.064658s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.048635s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.051315s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.033310s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.043810s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.060451s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.042862s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.048798s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port [0.061105s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port [0.045706s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.049170s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.046958s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.039902s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.047879s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.041773s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console [0.048202s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.047997s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.046627s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.294857s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.038850s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.068790s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.042994s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.058497s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.055491s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.072331s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console [0.064780s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.052993s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.062318s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console [0.043128s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.050556s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.078150s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.036168s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.062076s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.047852s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.024166s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.047372s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.053816s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.021079s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_http_boot_not_enabled [0.087562s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.048399s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.048798s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.069714s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.045723s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.066226s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.055108s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.049515s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.085931s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.072762s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.047838s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.079922s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.065589s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.048412s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off [0.045633s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.051034s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.041500s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on [0.071359s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.041336s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.059289s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.046604s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state [0.056285s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail [0.056602s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties [0.038034s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot [0.083645s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout [0.047377s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power [0.109231s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail [0.093590s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout [0.087550s] ... ok {2} ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate [0.045664s] ... ok {2} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.020770s] ... ok {2} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.034925s] ... ok {2} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.027785s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.052221s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.040140s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.067791s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.043572s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.039404s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.042209s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.055814s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.037084s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.052264s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.063335s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.056731s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.306899s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.054664s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.043209s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.042221s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.044599s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_parse_sleep_range [0.044443s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.054146s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.043917s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_range [0.042423s] ... ok {2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.048156s] ... ok {2} ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces [0.049546s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.056084s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.061233s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector [0.037039s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios [0.062843s] ... ok {2} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.055727s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces [0.062925s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.063512s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.048408s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.039882s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.069287s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.100386s] ... ok {2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.043962s] ... ok {2} ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces [0.058386s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create [0.033954s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.032147s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.062118s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.035615s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.047282s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.042423s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found [0.062743s] ... ok {2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.065481s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.022488s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.027774s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.045878s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.021191s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.022832s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.019762s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.031736s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.050203s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.025558s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.019743s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.087873s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.051275s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.044667s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.034304s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.022539s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.020300s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.019638s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.071225s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.030887s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.052752s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.044951s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.031008s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.032592s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.027894s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.021824s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden [0.020988s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.024212s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields [0.031926s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.029994s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.021978s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.022855s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.028765s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.043158s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.025768s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.038691s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.044506s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.035908s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.049168s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.056122s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.030757s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.051424s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.061107s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.026926s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.028469s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.025194s] ... ok {2} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.022587s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.021013s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.022600s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.018492s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.018834s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.029074s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.018736s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.028476s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.020951s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.022514s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.022919s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.019098s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.264538s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.017316s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.015801s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.017479s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.028867s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.037356s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.040955s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.018919s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.019809s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.039333s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.038063s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.035282s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.021498s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.036468s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.024108s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.023116s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.020219s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.023681s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.019401s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.027291s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.021258s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.022075s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.023295s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.028441s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.050228s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.022483s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.024265s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.024768s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_deny_macs [0.034399s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.030755s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_only_new_macs [0.027692s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_removed_nodes [0.029000s] ... ok {2} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.027357s] ... ok Exception ignored in: Traceback (most recent call last): File "/usr/lib64/python3.9/tempfile.py", line 461, in __del__ File "/usr/lib64/python3.9/tempfile.py", line 457, in close FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpbiebxwhf/tmp2tvppn74' ============================== Failed 2 tests - output below: ============================== ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit ------------------------------------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 410, in test_vmdk_bad_descriptor_mem_limit self._test_vmdk_bad_descriptor_mem_limit() File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 384, in _test_vmdk_bad_descriptor_mem_limit img = self._create_allocated_vmdk(image_size // units.Mi, File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 185, in _create_allocated_vmdk subprocess.check_output( File "/usr/lib64/python3.9/subprocess.py", line 424, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib64/python3.9/subprocess.py", line 528, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command 'qemu-img convert -f raw -O vmdk -o subformat=monolithicSparse -S 0 /tmp/tmpojfnmtgo/ironic-unittest-formatinspector--monolithicSparse-zrqwz8xo.raw /tmp/tmpojfnmtgo/ironic-unittest-formatinspector--monolithicSparse-6bs6vc0k.vmdk' returned non-zero exit status 127. ironic.tests.unit.common.test_format_inspector.TestFormatInspectors.test_vmdk_bad_descriptor_mem_limit_stream_optimized ----------------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 413, in test_vmdk_bad_descriptor_mem_limit_stream_optimized self._test_vmdk_bad_descriptor_mem_limit(subformat='streamOptimized') File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 384, in _test_vmdk_bad_descriptor_mem_limit img = self._create_allocated_vmdk(image_size // units.Mi, File "/builddir/build/BUILD/ironic-24.1.2.dev27/ironic/tests/unit/common/test_format_inspector.py", line 185, in _create_allocated_vmdk subprocess.check_output( File "/usr/lib64/python3.9/subprocess.py", line 424, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib64/python3.9/subprocess.py", line 528, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command 'qemu-img convert -f raw -O vmdk -o subformat=streamOptimized -S 0 /tmp/tmp17edyt0j/ironic-unittest-formatinspector--streamOptimized-1oa6qzjy.raw /tmp/tmp17edyt0j/ironic-unittest-formatinspector--streamOptimized-yqijm6oz.vmdk' returned non-zero exit status 127. ====== Totals ====== Ran: 9580 tests in 220.2730 sec. - Passed: 9519 - Skipped: 59 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 2 Sum of execute time for each test: 570.9332 sec. ============== Worker Balance ============== - Worker 0 (2261 tests) => 0:01:57.077178 - Worker 1 (2379 tests) => 0:02:13.422246 - Worker 2 (2953 tests) => 0:03:39.427037 - Worker 3 (1987 tests) => 0:01:46.388963 Test id Runtime (s) --------------------------------------------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on 4.059 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout 3.085 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout 3.048 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok 2.107 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail 2.091 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok 2.063 ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple 2.057 ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off 1.488 ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries 1.261 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off 1.129 ERROR: InvocationError for command /usr/bin/stestr run --slowest --parallel-class --exclude-regex TestMigrationsMySQL (exited with code 1) ___________________________________ summary ____________________________________ ERROR: py39: commands failed error: Bad exit status from /var/tmp/rpm-tmp.SqHkOu (%check) Bad exit status from /var/tmp/rpm-tmp.SqHkOu (%check) RPM build errors: Child return code was: 1 EXCEPTION: [Error("Command failed: \n # bash --login -c '/usr/bin/rpmbuild -ba --noprep --target x86_64 /builddir/build/SPECS/openstack-ironic.spec'\n", 1)] Traceback (most recent call last): File "/usr/lib/python3.9/site-packages/mockbuild/trace_decorator.py", line 93, in trace result = func(*args, **kw) File "/usr/lib/python3.9/site-packages/mockbuild/util.py", line 612, in do_with_status raise exception.Error("Command failed: \n # %s\n%s" % (cmd_pretty(command, env), output), child.returncode) mockbuild.exception.Error: Command failed: # bash --login -c '/usr/bin/rpmbuild -ba --noprep --target x86_64 /builddir/build/SPECS/openstack-ironic.spec'